私は、さまざまなスパークストリーミングジョブ用に複数のdataprocクラスタを実行しています。すべてのクラスタは単一ノードとして構成されています。Google dataproc sparkジョブで「ジョブの実行中にノードが再起動されました」が失敗します。メッセージ
最近(cca 10日前)私はすべてのクラスタで仕事の失敗を経験し始めました。各ジョブは約実行中です。 3日後に同じメッセージで失敗します。
=========== Cloud Dataproc Agent Error ===========
com.google.cloud.hadoop.services.agent.AgentException: Node was restarted while executing a job. This could be user-initiated or caused by Compute Engine maintenance event. (TASK_FAILED)
at com.google.cloud.hadoop.services.agent.AgentException$Builder.build(AgentException.java:83)
at com.google.cloud.hadoop.services.agent.job.AbstractJobHandler.lambda$kill$0(AbstractJobHandler.java:211)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:211)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:200)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:130)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:634)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:98)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.AbstractTransformFuture.create(AbstractTransformFuture.java:50)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.Futures.transformAsync(Futures.java:551)
at com.google.cloud.hadoop.services.agent.job.AbstractJobHandler.kill(AbstractJobHandler.java:202)
at com.google.cloud.hadoop.services.agent.job.JobManagerImpl.recoverAndKill(JobManagerImpl.java:145)
at com.google.cloud.hadoop.services.agent.MasterRequestReceiver$NormalWorkReceiver.receivedJob(MasterRequestReceiver.java:142)
at com.google.cloud.hadoop.services.agent.MasterRequestReceiver.pollForJobsAndTasks(MasterRequestReceiver.java:106)
at com.google.cloud.hadoop.services.agent.MasterRequestReceiver.pollForWork(MasterRequestReceiver.java:78)
at com.google.cloud.hadoop.services.agent.MasterRequestReceiver.lambda$doStart$0(MasterRequestReceiver.java:68)
at com.google.cloud.hadoop.services.repackaged.com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator$NeverSuccessfulListenableFutureTask.run(MoreExecutors.java:623)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
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:748)
======== End of Cloud Dataproc Agent Error ========
これはログにも表示される最後のものです。 以前は問題なく50日間稼動していたアプリケーションの場合、これはスパークコードを変更せずに開始されました。
すべてのクラスタは、ヨーロッパ - 西1-dゾーン、グローバル領域にあります。 すべてのアプリケーションはscalaで書かれています。
誰かが似たような経験をしていますか?どんな助けも歓迎されるでしょう。
感謝を! google-dataproc-agentログを見ると、実際にJavaがメモリ不足になっていることが確認されました。私はそれをもっと徹底的に監視して見ようとします。スパークのアプリケーションで何らかのメモリリークが発生するかもしれません。stackdriverモニタリングに関しては、私はすでにそれを使用していますが、RAMの使用状況の監視をサポートしていないか、何かが欠けているようです。 –
ありがとうございます。 RAMの使用状況が報告されない理由を見ていきます。 – tix
また、イメージバージョン1.1.34を使用して失敗しているすべてのクラスタが認識されましたが、バージョン1.1.29を使用している古いクラスタも1つあり、60日間以上問題なく動作しています。その間、私のクラスタは引き続き失敗し、処理中のデータの量にかかわらず、cca 3および半日の実行後に定期的に発生します。 –