スタンドアロンクラスタモードでスパークジョブを実行しているときにこれらのエラーに直面しています。最終df
を取得し、df.toPandas().to_csv()
するためにいくつかのgroupby
、 Pyspark:TaskMemoryManager:ページの割り当てに失敗しました:エラー分析で助けが必要
count
、joins
を実行
- :
マイスパークジョブが目指しています。
入力データセットは524Mbです。私が取得エラー:
WARN TaskMemoryManager: Failed to allocate a page (33554432 bytes), try again.
を複数回後
がNettyRpcEnvをWARN以上、再び新しいエラーを繰り返し:失敗を無視:java.util.concurrent.TimeoutExceptionは:10秒
内の任意の応答を受信できませんorg.apache.spark.rpc.RpcTimeoutException:先物は[10秒]後にタイムアウトしました。このタイムアウトは、spark.executor.heartbeatIntervalによって制御されます。
at org.apache.spark.rpc.RpcTimeout ORG $ Apacheの$スパーク$ RPC $ RpcTimeout $$ createRpcTimeoutException
ExecutorLostFailure(エグゼキュータドライバが実行中のタスクのいずれかが原因で終了しました)理由:158295ミリ秒
例外は、要求の処理中に起きた後エグゼハートビートがタイムアウトしました( '127.0.0.1'、49128) トレースバック(直近の最後のコール):
ファイル "/home/stp/spark-2.0.0-bin-hadoop2.7/python/pyspark/accumulators.py" 、行235、ハンドル内 num_updates = read_int(self.rfile) ファイル "/home/stp/spark-2.0.0-bin-hadoop2.7/python/pyspark/serializer最後の###でread_int 昇給の例外EOFError 例外EOFErrorでs.py」、行545、
******** ##
py4j.protocol.Py4JNetworkError:中にエラーが発生しましたエラーが原因メモリエラー(TaskMemoryManager)にし、合計16ギガバイトからかもしれないが、私が想定し、Javaサーバ最初に考えた上で(127.0.0.1:38073)
に接続するには、プロセスは最大6ギガバイトを消費しました。 9 + gbは無料です。また、ドライバのメモリを10Gに設定しました。そう、合格。
しかし、最終的なデータフレームでcount()またはshow()を実行すると、成功しました。しかしtoCsvをしている間、それは上記のエラー/警告を投げています。
問題の原因を実際に理解したり推測したりしないでください。
上記のエラーを分析するのを手伝ってください。どんな助けやコメントも大歓迎です。ありがとう。