2016-09-24 2 views
6

pyspark에서 미리 훈련 된 xgboost 분류기를 사용하고 싶지만 클러스터의 노드에는 xgboost 모듈이 설치되어 있지 않습니다. 내가 훈련하고 브로드 캐스팅 한 분류자를 피클링 할 수는 있지만 각 클러스터 노드에 모듈을로드해야하므로 충분하지 않습니다.spark에서 사용하기 위해 xgboost 모듈을 배포하는 방법은 무엇입니까?

루트가없고 공유 파일 시스템이 없으므로 클러스터 노드에 설치할 수 없습니다.

어떻게 spark에서 사용할 xgboost 분류자를 배포 할 수 있습니까?


나는 xgboost에 대한 계란을 가지고있다. http://apache-spark-user-list.1001560.n3.nabble.com/Loading-Python-libraries-into-Spark-td7059.html 또는 https://stackoverflow.com/a/24686708/2179021과 같은 것을 사용할 수 있습니까?

+0

개별 시스템에 대한 SSH 액세스 권한이 있습니까? 어느 클러스터 관리자를 사용합니까? – zero323

+1

@ zero323 우리는 YARN을 사용하지만 슬프게도 기계에 대한 ssh 액세스가 없습니다. 내가해야 할 일은 '계란'방송과 관련된 해결책을 찾는 것입니다. – eleanora

+0

정직한 조언은 책임감있는 사람을 찾아 강제로 찾아서 필요한 라이브러리를 제공하거나 구성 가능한 환경 (예 : Anaconda 설치)을 제공하는 것입니다. 네이티브 의존성을 올바르게 구축하고 구성하는 것이 편안함뿐 아니라 기본 성능에 관한 것입니다. 차이점은 상당히 중요 할 수 있습니다. – zero323

답변

1

이 문제를 설명하는 Cloudera의 정말 좋은 blog post이 있습니다. 모든 크레딧은 그들에게갑니다.

하지만 간단히 질문에 대답하는 것은 불가능합니다. 복잡한 타사 종속성은 클러스터의 각 노드에 설치하고 올바르게 구성해야합니다. 간단한 모듈/종속성의 경우 *.egg, *.zip 또는 *.py 개의 파일을 만들고 --py-files 플래그가 spark-submit 인 클러스터에 제공 할 수 있습니다.

그러나 xgboost은 다른 Python 패키지뿐만 아니라 낮은 수준의 C++ 라이브러리/컴파일러에도 크게 의존하는 수치 패키지입니다. 클러스터에 컴파일 된 코드를 제공하면 다른 하드웨어 아키텍처에서 발생하는 오류가 발생할 수 있습니다. 클러스터가 일반적으로 하드웨어 측면에서 이질적이라는 사실을 추가하는 것은 그러한 일을하는 것이 매우 나쁜 일입니다.

+0

감사합니다. 하드웨어가 동 질적이며 xgboost 달걀을 가지고있는 경우 더 자세한 정보를 제공 할 수 있습니까? – eleanora

+1

불행히도, 아니오. 그런 식으로 사용한 적이 없습니다. 완전히 정직하기 위해서는 라이브러리의 복잡성 때문에 아마 작동하지 않을 것입니다. 알을 사용하는 접근법은 단순한 패키지에서만 작동합니다. 그 위에, 이것이 프로덕션에 있기를 원하면 다른 방법을 찾아야합니다. 그렇지 않다면 아마도 클러스터에 액세스하여 Python을 직접 설치할 수 있습니다. 나는 달걀 접근에서 멀리 조종 할 것이다. – bear911

관련 문제