2017-03-20 3 views
2

아나콘다 쥬피터 노트와 관련된 도움을 찾고 싶습니다. Jupyter 노트북에 PySpark와 SparkR을 쓰고 싶습니다. Jupyter 노트북과 함께 Apache Toree를 설치하는 방법을 가르치는 온라인 자습서를 따라했습니다.아파치 토리 (아나콘다 주피터 노트 포함)

나는 Kerberized Hadoop 클러스터를 관리하기 위해 Cloudera Manager 소포를 사용하고 있습니다.

그러나 Apache Toree PySpark의 커널을 서버 로그에서 아래 오류와 함께 열 수 없습니다.

[I 15:24:50.529 NotebookApp] Creating new notebook in 
[I 15:24:52.079 NotebookApp] Kernel started: 8cb4838c-2171-4672-96a4-b21ef191ffc6 
Starting Spark Kernel with SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark 
WARNING: User-defined SPARK_HOME (/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p2024.2115/lib/spark) overrides detected (/opt/cloudera/parcels/CDH/lib/spark). 
WARNING: Running spark-class from user-defined location. 
Exception in thread "main" java.lang.NoSuchMethodError: joptsimple.OptionParser.acceptsAll(Ljava/util/Collection;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder; 
    at org.apache.toree.boot.CommandLineOptions.<init>(CommandLineOptions.scala:37) 
    at org.apache.toree.Main$delayedInit$body.apply(Main.scala:25) 
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40) 
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) 
    at scala.App$$anonfun$main$1.apply(App.scala:71) 
    at scala.App$$anonfun$main$1.apply(App.scala:71) 
    at scala.collection.immutable.List.foreach(List.scala:318) 
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) 
    at scala.App$class.main(App.scala:71) 
    at org.apache.toree.Main$.main(Main.scala:24) 
    at org.apache.toree.Main.main(Main.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

저는 Toree 라이브러리와 Spark 홈에 jopt-simple-4.5.jar를 넣었습니다. 거기에 항아리가 있어야 새로운 노트북을 만들 때 찾을 수있는 곳이 있습니까? 감사.

안부, 루카 내가 발견 simpliest 솔루션은 다음 옵션을 추가하는 것입니다

+0

나는이 같은 문제를 가지고 :

P. S. 여기 CDH 5.10.0와 호환되는 Toree 버전입니다. https://issues.apache.org/jira/browse/TOREE-324 링크는 jopt-simple 4.9로 다시 컴파일하라고 말합니다. 이 변경으로 다시 컴파일했지만 완료하려면 IT가 필요합니다. 그래서 문제를 해결할 수는 없습니다. 이 주제에 대한 https://gitter.im/apache/toree에 대한 현재 대화가 있습니다. - 계속 지켜봐주십시오. – codeaperature

답변

2

불꽃 제출

--conf "spark.driver.extraClassPath=/usr/local/share/jupyter/kernels/apache_toree_scala/lib/toree-assembly-0.1.0-incubating.jar" --conf "spark.executor.extraClassPath=/usr/local/share/jupyter/kernels/apache_toree_scala/lib/toree-assembly-0.1.0-incubating.jar" 

이 추가 될 수 있습니다 /usr/local/share/jupyter/kernels/apache_toree_scala/kernel.json 파일의 __TOREE_SPARK_OPTS__ 변수 또는 /usr/local/share/jupyter/kernels/apache_toree_scala/bin/run.sh 파일의 bash 명령에 직접 연결하십시오.

이렇게하면 클래스 로더가 기본 CDH 라이브러리가 아닌 Toree JAR에서 joptsimple.OptionParser을로드하게됩니다. https://github.com/Myllyenko/incubator-toree/releases

+0

당신의 솔루션은 의미가 있습니다 ... 나는이 조언을 시도하기 위해 configs를 가지고 놀았습니다 ... 나는 뭔가를 놓치고 있습니다. 이 conf 라인을 Apache Toree의 configs에 추가했거나 bash spark-submit 파일을 편집 했습니까? 당신은 어떤 특성을 제공 할 정도로 친절합니까? Toree와 함께 일하는 CDH (나에게 5.9.2)를 얻으려면 주목할만한 다른 것을 해 봤니? – codeaperature

+1

답을 업데이트했지만 CDH 5.9.2에서 작동하는지 확신 할 수 없습니다. 이 답변을 게시하는 순간 CDH 5.10.0으로 Toree를 시작할 수있는 방법을 찾고있었습니다. 나중에 Apache Spark와 Cloudera Spark 라이브러리 간의 바이너리 비 호환성으로 인해 다른 문제가 발생하여 결국 기본 Toree 어셈블리를 사용하려는 시도를 포기했습니다. Toree Gitter에서 Toree를 Spark 라이브러리에 맞게 다시 컴파일하라는 조언을 받았습니다. 내가이 일에 성공하면 알려주지. –

+0

CDH 빌드/분기가 가능한 방법입니다. 나는 똑같은 일을하고 있으며 Gitter 채팅 내에서 협력하고있다. CDH 병은 repo에 없을 수도 있습니다.'repo1.maven.org', Toree는'DependencyDownloader'에서 선언합니다. 나는 repo를 찾아 보았고 & 그것들을 가지고있는 것처럼 보이지 않는다. – codeaperature