web-dev-qa-db-ja.com

SparkContextがランダムに閉じてしまう理由と、Zeppelinからどのように再起動するのですか?

私はZeppelinでspark-sqlクエリを作成していて、(コードを変更しないと)突然このエラーが発生することがあります。

Cannot call methods on a stopped SparkContext.

次に、出力はさらに下を言います:

The currently active SparkContext was created at:

(No active SparkContext.)

これは明らかに意味がありません。これはツェッペリンのバグですか?それとも私は何か間違ったことをしていますか? SparkContextを再起動するにはどうすればよいですか?

ありがとうございました

18
The Puma

私はこの問題に数回直面しています。

マスターをyarn-clientとして設定している場合、リソースマネージャーの停止/再起動が原因である可能性があります。インタープリタープロセスはまだ実行されている可能性がありますが、Spark Context(これはYarnアプリケーションです) )はもう存在しません。

Sparkコンテキストがまだ実行されているかどうかを、リソースマネージャーのWebインターフェイスを参照して確認し、Zeppelinという名前のアプリケーションが実行されているかどうかを確認できます。

Zeppelin内からインタープリタープロセスを再起動すると(インタープリタータブ-> spark-> restart))、問題が解決する場合があります。

その他に次のことを行う必要があります。

  • コマンドラインからSparkインタプリタプロセスを強制終了します
  • SparkインタプリタPIDファイルを削除します
  • 次回段落を開始すると、新しい段落が開始されますspark context
18
user1314742

PySparkで複数のジョブを実行する同じ問題に直面しています。 Spark 2.0.0、SparkSessionの場合、spark.stop()を呼び出すと、SparkSessionが次のトレースを呼び出すようです:

_# SparkSession 
self._sc.stop()
# SparkContext.stop()
self._jsc = None
_

次に、新しいSparkContextで新しいジョブを作成しようとすると、SparkSessionは_self.jsc = None_で以前と同じSparkContextを返します。

spark.stop()の後に_SparkSession._instantiatedContext = None_を設定して、SparkSessionにnew SparkContextを強制的に作成するように強制しました。

それは最良の選択肢ではありませんが、その間私の問題を解決しています。

8
Franzi

pysparkコマンドを実行すると、セルの実行が実行状態でハングするという簡単な変数宣言があっても、この問題にさらに気づきました。上記のuser1314742で述べたように、関連するPIDを強制終了するだけでこの問題は解決します。

例えば。:

ps -ef | grep zeppelin

Spark=インタプリタを再起動してzeppelin Notebookを再起動しても問題は解決されません。ハングしたPID自体を制御できないためと思います。

0