zeppelin 에서



아래와 같은 에러 발생 시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
java.lang.NoSuchMethodError: scala.reflect.api.JavaUniverse.runtimeMirror(Ljava/lang/ClassLoader;)Lscala/reflect/api/JavaMirrors$JavaMirror;
    at org.apache.spark.repl.SparkILoop.<init>(SparkILoop.scala:936)
    at org.apache.spark.repl.SparkILoop.<init>(SparkILoop.scala:70)
    at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:790)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:491)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
 
cs



** 해결 방법 1

우측 상단의 해당 계정을 클릭하면



아래와 같은 메뉴 바에서 InterPreter 를 클릭합니다.



상단의 검색창에서 찾으려는 Interpreter 를 조회합니다.



조회한 인터프리터의 목록 중 아래와 같은 내용을 확인합니다.



확인 후에 다음과 같이 실행합니다.

1
2
3
4
5
6
7
8
$ /usr/local/zeppelin/bin/interpreter.sh -p 2080 -d /usr/local/zeppelin-0.7.3-bin-all/interpreter/spark/ -l /usr/local/zeppelin/local-repo/2D5AQF6P1
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/zeppelin-0.7.3-bin-all/interpreter/spark/zeppelin-spark_2.11-0.7.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/zeppelin-0.7.3-bin-all/lib/interpreter/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/spark-1.6.3-bin-hadoop2.6/lib/spark-assembly-1.6.3-hadoop2.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
 
cs

* 포트 번호 2080은 사용하지 않은 포트 중 임의의 포트 번호를 지정합니다.



다시 zeppelin Web UI 로 돌아가서 spark 관련 interpreter 에 우측 상단의 edit 버튼을 클릭합니다.



위의 그림에서 Connect to existing process 체크 박스를 클릭하여 아래와 같이 설정 후 Save 버튼을 클릭합니다.

* Save 버튼은 하단에 있습니다.



다시 spark 작성 화면으로 돌아가서 실행하면



** 해결 방법 2

 : spark 의 홈 디렉터리 이하에 lib 디렉터리 내에 *.jar 파일을 zeppelin 의 홈 디렉터리 이하 interpreter/spark 디렉터리로 복사

* spark/lib 의 jar 파일

1
2
3
4
5
6
7
8
9
10
11
$ ll /usr/local/spark/lib/
total 299124
drwxr-xr-x  2 hadoop-user hadoop      4096 Jan 22 15:08 ./
drwxr-xr-x 13 hadoop-user hadoop      4096 Jan 22 15:32 ../
-rw-r--r--  1 hadoop-user hadoop    339666 Jan 22 15:08 datanucleus-api-jdo-3.2.6.jar
-rw-r--r--  1 hadoop-user hadoop   1890075 Jan 22 15:08 datanucleus-core-3.2.10.jar
-rw-r--r--  1 hadoop-user hadoop   1809447 Jan 22 15:08 datanucleus-rdbms-3.2.9.jar
-rw-r--r--  1 hadoop-user hadoop   6920412 Jan 22 15:08 spark-1.6.3-yarn-shuffle.jar
-rw-r--r--  1 hadoop-user hadoop 182073169 Jan 22 15:08 spark-assembly-1.6.3-hadoop2.6.0.jar
-rw-r--r--  1 hadoop-user hadoop 113254112 Jan 22 15:08 spark-examples-1.6.3-hadoop2.6.0.jar
 
cs


* zeppelin/interpreter/spark 디렉터리 이하에 복사

1
2
$ cp /usr/local/spark/lib /usr/local/zeppelin/interpreter/spark
 
cs



+ Recent posts