Tom*_*Ron 6 scala apache-spark pyspark apache-zeppelin
我是Apache Zeppelin的新手,我尝试在本地运行它.我尝试运行一个简单的健全性检查,看看它是否sc
存在并得到以下错误.
我编译它为pyspark和spark 1.5(我使用spark 1.5).我将内存增加到5 GB并将端口更改为8091.
我不确定我做错了什么,所以我得到以下错误,我该如何解决它.
提前致谢
抛出java.lang.ClassNotFoundException:org.apache.spark.repl.SparkCommandLine在java.net.URLClassLoader.findClass(URLClassLoader.java:381)在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.misc.启动$ AppClassLoader.loadClass(Launcher.java:331)在java.lang.ClassLoader.loadClass(ClassLoader.java:357)在org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:401)在org.apache .zeppelin.interpreter.ClassloaderInterpreter.open(ClassloaderInterpreter.java:74)org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:68)at org.apache.zeppelin.spark.PySparkInterpreter.getSparkInterpreter(PySparkInterpreter.java) :485)org.apache.zeppelin.spark.PySparkInterpreter.createGatewayServerAndStartScript(PySparkInterpreter.java:174)org.apache.zeppelin.spark.PySparkInterpreter.open(PySparkInterpreter.java:152)org.apache.zeppelin.interpreter. org.apache.zeppelin.interpreter.Lazy中的ClassloaderInterpreter.open(ClassloaderInterpreter.java:74)org.apache.zeppelin.interpret(LazyOpenInterpreter.java:92)中的OpenInterpreter.open(LazyOpenInterpreter.java:68)位于org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun(RemoteInterpreterServer.java: 302)在org.apache.zeppelin.scheduler.Job.run(Job.java:171)在org.apache.zeppelin.scheduler.FIFOScheduler $ 1.run(FIFOScheduler.java:139)在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent.ScheduledThreadPoolExecutor中$ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180)在爪哇. util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java: 617)在java.lang.Thread.run(Thread.java:745)
更新 我的解决方案是将我的scala版本从2.11.*降级到2.10.*,再次构建Apache Spark并运行Zeppelin.
我根据您在评论中的回答做出某些假设。听起来 Zeppelin 设置不错,当我查看SparkCommandLine类时,它是Spark 核心的一部分。
现在 Zeppelin 有自己的最小嵌入式 Spark 类,如果您不设置 SPARK_HOME,这些类就会被激活。因此,首先,根据此 github 页面,尝试不设置 SPARK_HOME(您正在设置)和 HADOOP_HOME (我认为您没有设置),看看消除底层 Spark 安装是否可以“修复”它:
如果没有 SPARK_HOME 和 HADOOP_HOME,Zeppelin 将使用您通过 mvn 构建选项指定的嵌入式 Spark 和 Hadoop 二进制文件。如果您想使用系统提供的 Spark 和 Hadoop,请在 zeppelin-env.sh 中导出 SPARK_HOME 和 HADOOP_HOME 您可以使用任何受支持的 Spark 版本,而无需重建 Zeppelin。
如果有效,那么您就知道我们正在研究 Java 类路径问题。为了尝试解决这个问题,zeppelin-env.sh 文件中还有一项设置,
ZEPPELIN_JAVA_OPTS
Run Code Online (Sandbox Code Playgroud)
在 Zeppelin 邮件列表中提到,请确保将其设置为指向实际的 Spark jar,以便 JVM 通过 -classpath 来获取它
这是我的 zeppelin 进程的样子,以进行比较,我认为重要的部分是 -cp 参数,在您的系统上执行 ps 并查看您的 JVM 选项,看看它是否类似地指向
/usr/lib/jvm/java-8-oracle/bin/java -cp /usr/local/zeppelin/interpreter/spark/zeppelin-spark-0.5.5-incubating.jar:/usr/local/spark/conf/:/usr/local/spark/lib/spark-assembly-1.5.1-hadoop2.6.0.jar:/usr/local/spark/lib/datanucleus-rdbms-3.2.9.jar:/usr/local/spark/lib/datanucleus-core-3.2.10.jar:/usr/local/spark/lib/datanucleus-api-jdo-3.2.6.jar
-Xms1g -Xmx1g -Dfile.encoding=UTF-8 -Xmx1024m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 -Xmx1024m -XX:MaxPermSize=512m -Dzeppelin.log.file=/usr/local/zeppelin/logs/zeppelin-interpreter-spark-jim-jim.log org.apache.spark.deploy.SparkSubmit --conf spark.driver.extraClassPath=:/usr/local/zeppelin/interpreter/spark/zeppelin-spark-0.5.5-incubating.jar
--conf spark.driver.extraJavaOptions= -Dfile.encoding=UTF-8 -Xmx1024m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 -Xmx1024m -XX:MaxPermSize=512m -Dzeppelin.log.file=/usr/local/zeppelin/logs/zeppelin-interpreter-spark-jim-jim.log
--class org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer /usr/local/zeppelin/interpreter/spark/zeppelin-spark-0.5.5-incubating.jar 50309
Run Code Online (Sandbox Code Playgroud)
希望有帮助,如果这不起作用,请编辑您的问题以显示您现有的类路径。
归档时间: |
|
查看次数: |
2336 次 |
最近记录: |