web-dev-qa-db-ja.com

実行中にNullPointerExceptionを取得Spark Zeppelin 0.7.1のコード

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 installation&Hadoop configuration directory

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

Spark私が使用しているバージョンは2.1.0&Hadoopは2.7.3です

また、デフォルトのSpark= Interpreter Configuration)を使用しています(so SparkはLocal modeで実行するように設定されています)

ここに何かが足りませんか?

PS:spark-Shellを使用して、ターミナルからspark=に接続できます

15
Raj

ちょうど今、Zeppelin-0.7.2のこの問題の解決策を得ました。

根本的な原因:Spark Hiveコンテキストをセットアップしようとしているが、hdfsサービスが実行されていないため、HiveContextがnullになり、nullポインタ例外がスローされます。

解決策:
1。 Saprk Home [オプション]およびHDFSをセットアップします。
2。 HDFSサービスを実行する
3。 zeppelinサーバーを再起動します
[〜#〜] or [〜#〜]
1。 Zeppelinの通訳設定に移動します。
2。 Sparkインタープリターを選択します
3。 zeppelin.spark.useHiveContext = false

12
Rajeev Rathor

最後に、理由を見つけることができます。 ZL_HOME/logsディレクトリのログを確認したところ、Spark Driver binding error。Spark Interpreter Bindingと今はうまくいく...

enter image description here

PS:この問題は、主にVPNに接続した場合に発生するようです...そして、私はVPNに接続します

9
Raj

正しく設定しましたかSPARK_HOMEskがあなたのexport SPARK_HOME="/${homedir}/sk"

(私はあなたの質問の下にコメントしたかったのですが、評判がなかったためにできませんでしたか????)

2
Ahyoung Ryu

ウィンドウ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ライブラリを使用しているため、%SPARK_HOME%の値は空白として構成されました。

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例外が発生していました。 2つのコマンドプロンプトを開き、1つのcmdでzeppeline.cmdを開始し、もう1つのinterpreter.cmdを開始しました。

コマンドラインで2つの追加の入力ポートとzeppeline local_repoへのパスを指定する必要があります。 local_repoへのパスはzeppeline sparkインタープリターページで取得できます。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バージョン。Zeppeline0.7.2はサポートしていませんspark 2.2.1

0
Soumyajit Swain
    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
0
user2324770

AWS EMRでは、問題はメモリでした。 ZeppelinのUIを使用して、Spark=)のInterpeterで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

0

NameNodeがセーフモードになったかどうかを確認します。

以下の構文で確認してください:

Sudo -u hdfs hdfs dfsadmin -safemode get

セーフモードを終了するには、以下のコマンドを使用します。

Sudo -u hdfs hdfs dfsadmin -safemode leave
0
Vishwajeet Pol

dir zeppelin-0.6.1のファイルcommon.shの先頭にこの行を追加してから、bin

common.shを開き、ファイルセットの先頭にコマンドを追加します。

unset CLASSPATH

0
Mmagdy