私はZeppelinでspark-sqlクエリを作成していて、(コードを変更しないと)突然このエラーが発生することがあります。
Cannot call methods on a stopped SparkContext.
次に、出力はさらに下を言います:
The currently active SparkContext was created at:
(No active SparkContext.)
これは明らかに意味がありません。これはツェッペリンのバグですか?それとも私は何か間違ったことをしていますか? SparkContextを再起動するにはどうすればよいですか?
ありがとうございました
私はこの問題に数回直面しています。
マスターをyarn-clientとして設定している場合、リソースマネージャーの停止/再起動が原因である可能性があります。インタープリタープロセスはまだ実行されている可能性がありますが、Spark Context(これはYarnアプリケーションです) )はもう存在しません。
Sparkコンテキストがまだ実行されているかどうかを、リソースマネージャーのWebインターフェイスを参照して確認し、Zeppelinという名前のアプリケーションが実行されているかどうかを確認できます。
Zeppelin内からインタープリタープロセスを再起動すると(インタープリタータブ-> spark-> restart))、問題が解決する場合があります。
その他に次のことを行う必要があります。
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を強制的に作成するように強制しました。
それは最良の選択肢ではありませんが、その間私の問題を解決しています。
pyspark
コマンドを実行すると、セルの実行が実行状態でハングするという簡単な変数宣言があっても、この問題にさらに気づきました。上記のuser1314742で述べたように、関連するPID
を強制終了するだけでこの問題は解決します。
例えば。:
ps -ef | grep zeppelin
Spark=インタプリタを再起動してzeppelin Notebookを再起動しても問題は解決されません。ハングしたPID
自体を制御できないためと思います。