2017-04-08 143 views
11

我已經安裝Zeppelin 0.7.1。當我試圖執行示例星火計劃(這是可利用的Zeppelin Tutorial筆記本電腦),我收到以下錯誤在Zeppelin中運行Spark代碼時發生NullPointerException 0.7.1

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)指向我的星火安裝& Hadoop配置目錄

export SPARK_HOME="/${homedir}/sk" 
export HADOOP_CONF_DIR="/${homedir}/hp/etc/hadoop" 

我使用的Spark版本是2.1.0 & Hadoop是2.7.3

我也是使用默認的Spark解釋Configu (因此Spark設置爲在Local mode中運行)

我在這裏錯過了什麼嗎?

PS:我能夠連接使用spark-shell

回答

1

從終端到激發你定好了SPARK_HOME?只是想知道什麼sk是你 export SPARK_HOME="/${homedir}/sk"

(我只是想你的問題在下面發表評論,但不能,因爲我缺乏信譽)

+0

是的,那是我安裝Spark的地方:)。那就是Spark安裝的主目錄 – Raj

7

最後,我能找出原因。當我在ZL_HOME/logs目錄中檢查日誌時,發現它似乎是Spark Driver綁定錯誤。增加了以下財產星火解釋綁定和現在的工作好...

enter image description here

PS:貌似如果您連接到VPN ......,我也連接到VPN

-2
這個問題出現主要

似乎是Zeppelin 0.7.1中的bug。在0.7.2中工作正常。

+1

我認爲這是一個配置問題,並且會在任何版本的Zeppelin上發生。我在齊柏林看到了這個0.7.2 –

6

剛纔我得到了Zeppelin的-0.7.2這個問題的解決方案:

根本原因是:星火試圖建立蜂巢背景,但HDFS服務 沒有運行,這就是爲什麼HiveContext成爲零和指針異常拋出null 。

解決方案:
1.設置Saprk主頁[可選]和HDFS。
2.運行HDFS服務
3.重新啓動服務器飛艇
OR
1.轉到Zeppelin的解釋設置。
2.選擇星火解釋

+0

它完全適合我。 –

+0

HiveContext也爲我做了! –

+0

親愛的@RajeevRathor和@BenjaminBaron,我並不打算粗魯,但我確信提供答案與撰寫評論的目的相同。當你將鼠標懸停在「添加評論」上時,彈出窗口顯示「..避免評論如」+1「或」謝謝「。」僅供參考,此解決方案對我無效。 –

0

通過DIR齊柏林0.6.1再斌

開放共同文件common.sh 加入這一行的頂部解決它。SH 和文件集的頂部添加命令:

unset CLASSPATH

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 

它看起來像沒有啓動蜂巢Metastore服務。您可以啓動Metastore服務並重試。

hive --service metastore 
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。我們將不得不將所有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在訪問筆記本電腦。這導致了空指針異常。我打開了兩個命令提示符,並在一個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。 它將發佈火花版本。 Zeppeline 0.7.2不支持火花2.2.1

相關問題