我已安装Zeppelin 0.7.1
。当我尝试执行示例spark程序(可用于Zeppelin Tutorial
笔记本)时,我收到以下错误
java.lang.NullPointerException
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext_2(SparkInterpreter.java:391)
at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext(SparkInterpreter.java:380)
at org.apache.zeppelin.spark.SparkInterpreter.getSparkContext(SparkInterpreter.java:146)
at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:828)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:483)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我还设置了配置文件(zeppelin-env.sh
)以指向我的Spark安装& Hadoop配置目录
export SPARK_HOME="/${homedir}/sk"
export HADOOP_CONF_DIR="/${homedir}/hp/etc/hadoop"
我使用的Spark版本是2.1.0& Hadoop是2.7.3
我也使用默认的Spark解释器配置(因此Spark设置为在Local mode
中运行)
我在这里错过了什么吗?
PS:我可以使用spark-shell
答案 0 :(得分:12)
刚才我为Zeppelin-0.7.2解决了这个问题:
根本原因是:Spark试图设置Hive上下文,但是hdfs服务 没有运行,这就是为什么HiveContext变为null并抛出null 指针异常。
<强>解决方案:强>
1.设置Saprk Home [可选]和HDFS
2.运行HDFS服务
3.重新启动zeppelin服务器
或强>
1.转到Zeppelin的译员设置。
2.选择Spark解释器
3. zeppelin.spark.useHiveContext = false
答案 1 :(得分:9)
最后,我能够找出原因。当我检查ZL_HOME / logs目录中的日志时,发现它似乎是Spark Driver绑定错误。在Spark Interpreter Binding中添加了以下属性,现在效果很好......
PS:看起来这个问题主要出现在你连接到VPN ...并且我连接到VPN
答案 2 :(得分:2)
你是否设置了SPARK_HOME
?只是想知道你的sk
是什么
export SPARK_HOME="/${homedir}/sk"
(我只是想在你的问题下面发表评论但由于我缺乏声誉而无法评论)
答案 3 :(得分:0)
通过在文件common.sh的顶部添加此行来解决它 在dir zeppelin-0.6.1然后bin
打开common.sh 并在文件集的顶部添加命令:
unset CLASSPATH
答案 4 :(得分:0)
enterCaused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.thrift.transport.TSocket.open(TSocket.java:182)
... 74 more
)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:466)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:236)
at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:74)
... 71 more
INFO [2017-11-20 17:51:55,288] ({pool-2-thread-4} SparkInterpreter.java[createSparkSession]:369) - Created Spark session with Hive support
ERROR [2017-11-20 17:51:55,290] ({pool-2-thread-4} Job.java[run]:181) - Job failed code here
看起来Hive Metastore服务尚未启动。您可以启动Metastore服务并重试。
hive --service metastore
答案 5 :(得分:0)
我在窗口7上获得了zepelline 0.7.2版本的完全相同的异常。我必须对配置进行多项更改才能使其正常工作。
首先将zeppelin-env.cmd.template重命名为zeppelin-env.cmd。为PYTHONPATH添加env变量。该文件可以位于%ZEPPELIN_HOME%/ conf文件夹中。
set PYTHONPATH=%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip;%SPARK_HOME%\python\lib\pyspark.zip
从位置%ZEPPELIN_HOME%/ bin打开zeppelin.cmd,添加%SPARK_HOME%和%ZEPPELIN_HOME%。这些将是指令中的第一行。 %SPARK_HOME%的值在我使用嵌入式spark库时被配置为空白。我添加了%ZEPPELIN_HOME%以确保在启动的初始阶段配置此env。
set SPARK_HOME=
set ZEPPELIN_HOME=<PATH to zeppelin installed folder>
接下来,我们必须将所有jar和pySpark从%spark_home%/复制到zeppeline文件夹。
cp %SPARK_HOME%/jar/*.jar %ZEPPELIN_HOME%/interpreter/spark
cp %SPARK_HOME%/python/pyspark %ZEPPELIN_HOME%/interpreter/spark/pyspark
访问笔记本时我没有启动 interpreter.cmd 。这导致了nullpointer异常。我打开了两个命令提示符,在一个cmd中,我启动了zeppeline.cmd,并在另一个interpreter.cmd中启动。
我们必须在命令行中指定两个额外的输入端口和zeppeline local_repo的路径。您可以在zeppeline spark解释器页面中获取local_repo的路径。使用完全相同的路径启动interpreter.cmd。
interpreter.cmd -d %ZEPPELIN_HOME%\interpreter\spark\ -p 5050 -l %ZEPPELIN_HOME%\local-repo\2D64VMYZE
需要在zepelline ui的spark解释器页面中指定主机和端口。选择“连接到外部流程”
HOST : localhost
PORT : 5050
一旦创建了所有这些配置,下一步我们就可以保存并重新启动spark解释器。创建一个新的笔记本并键入sc.version。 它将发布spark版本。 Zeppeline 0.7.2不支持spark 2.2.1
答案 6 :(得分:0)
在AWS EMR上,问题是内存。我不得不使用Zeppelin的UI在Interpeter for Spark中为spark.executor.memory
手动设置较低的值。
该值因实例大小而异。
最好的方法是检查位于/mnt/var/log/zeppelin/
文件夹中的日志。
在我的情况下,潜在的错误是:
Error initializing SparkContext.
java.lang.IllegalArgumentException: Required executor memory (6144+614 MB) is above the max threshold (6144 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'.
这帮助我理解了为什么它失败了,我能做些什么来解决它。
注意:
这是因为我正在使用HBase启动一个限制可用内存的实例。请参阅实例大小here的默认值。
答案 7 :(得分:0)
检查您的NameNode是否已进入安全模式。
使用以下语法进行检查:
sudo -u hdfs hdfs dfsadmin -safemode get
要退出安全模式,请使用以下命令:
sudo -u hdfs hdfs dfsadmin -safemode leave
答案 8 :(得分:-2)
似乎是Zeppelin 0.7.1中的错误。在0.7.2中工作正常。