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=に接続できます
ちょうど今、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
正しく設定しましたかSPARK_HOME
? sk
があなたのexport SPARK_HOME="/${homedir}/sk"
(私はあなたの質問の下にコメントしたかったのですが、評判がなかったためにできませんでしたか????)
ウィンドウ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
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
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 。
NameNodeがセーフモードになったかどうかを確認します。
以下の構文で確認してください:
Sudo -u hdfs hdfs dfsadmin -safemode get
セーフモードを終了するには、以下のコマンドを使用します。
Sudo -u hdfs hdfs dfsadmin -safemode leave
dir zeppelin-0.6.1のファイルcommon.shの先頭にこの行を追加してから、bin
common.shを開き、ファイルセットの先頭にコマンドを追加します。
unset CLASSPATH