2016-12-28 14 views
1

私はいくつかのSpark pythonスクリプトをOozieのワークフローとして実行しなければなりませんが、Sparkを使ってスクリプトをローカルでテストしましたが、なぜ動作していないのか理解していない。 私はCloudera VMを使用しています。私は色相ダッシュボードでOozieを管理しています。ここでは、スパークアクションのワークフロー構成は次のとおりです。OozieとHueを使ってspark pythonジョブを実行する - Intercepting System.exit(1)

Spark Master: local[*] 
Mode: client 
App name: myApp 
Jars/py files: hdfs://localhost:8120/user/cloudera/example.py 
Main class: org.apache.spark 

私はちょうど何かを出力する簡単な例を実行することも試みたが、私はOozieを提出し、すべてのスクリプトが私にこの出力を与える:

>>> Invoking Spark class now >>> 

Intercepting System.exit(1) 

<<< Invocation of Main class completed <<< 

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [1] 

Oozie Launcher failed, finishing Hadoop job gracefully 

Oozie Launcher, uploading action data to HDFS sequence file: hdfs://quickstart.cloudera:8020/user/cloudera/oozie-oozi/0000005-161228161942928-oozie-oozi-W/spark-cc87--spark/action-data.seq 

Oozie Launcher ends 

[EDIT ]

私はspark master:yarn-clusterを設定した場合にのみワークフローが開始されることを知りましたが、このモードでも、spark appがステータスACCEPTEDのままである間に95%完成地図で止まった糸コンテナが起動されます。私はスパークアクションを開始させるための糸のメモリパラメータを変更しようとしています。スタウトはちょうどハートビート

[SOLVED]

oozieワークフローがPYファイルがローカルにある場合にのみ開始され、色相は、ワークフローのフォルダを作成した後に手動でlibフォルダに挿入し印刷します。私は最高の解決策はまだスパーク提出でシェルスクリプトを書くことだと思う。

+0

あなたのpython hdfsの場所は正しいですか? 'hdfs:// localhost:8120/user/cloudera/example.py' – mrsrinivas

+0

以前は/user/cloudera/example.pyというパスを設定していましたが、 'ファイルが見つかりません'というエラーが出ましたが、コンソールは単にSystem.exit(1)と言う。 –

+0

"libフォルダ"とは、ローカルのspark pythonフォルダのlibフォルダを意味しますか? –

答えて

0

表示されているエラーは、あなたのoozieジョブのstdoutファイルからです。 stderrファイルを一度確認し、ここに出力してください。それはあなたの問題に関連する手がかりをいくつか持っているかもしれません。

oozie Webコンソールを使用して、作業ログをトレースできます。

+0

Oozieコンソールでは、次のように表示されます:WARN org.apache.oozie.action.hadoop.SparkActionExecutor:SERVER [quickstart.cloudera] USER [cloudera] GROUP [ - ] TOKEN [] APP [Hour_Fillter] JOB [0000000-161229183653282-oozie-oozi -W] ACTION [0000000-161229183653282-oozie-oozi-W @ spark-cc87]ランチャーERROR、理由:メインクラス[org.apache.oozie.action.hadoop.SparkMain]、終了コード[1]。 –

+0

以下、コンソールURLへのリンクが表示されます。そのリンクをクリックし、さらに地図リンクをクリックしてから、タスク名とアプリケーションの試行ログをクリックします。これらのログの中には、syslog/stdout/stderrという3種類のログがあります。問題を見つけることができます。あなたは私に知らせてみることができますか? –

+0

stoud出力は私が上に掲示したものです、syslog/stderrはSystem exit 1と言います。 –

0

あなたはスパークの履歴を調べるべきです(色相は右上隅のオプションの中にジョブヒストイのタブがありますので、履歴URLを表示します)。一度それを持っているなら、EXECUTORSタブをチェックしてstdoutをクリックすることができます。あなたはそこに主なエラーを見ることができます。 OOzieログは、常に読めるものではありません。

+0

私がジョブブラウザに行くと、succededジョブが見つかり、明らかにsyslog/stdoutにエラーはありません。しかし、Sparkによってhdfsに書き込まれたファイルはありません。私がSpark Historyに行った場合、何も見つからず、システム出口1が何かが間違っていることを示唆しています。 –

+0

@AlessioRossottiそう、あなたはhadoopジョブヒストリーアプリケーション)とそこにログを見る – sau

関連する問題