私はgoogle dataproc sparkクラスタを1つのマスターノードと16のワーカーノードで設定しました。マスターには2 cpusと13 gのメモリーがあり、各作業員には2 cpusと3.5 gのメモリーがあります。私は16のオブジェクトの配列を持っていて、この配列を16のパーティションに分割して、各ワーカーが1つのオブジェクトを取得するように、むしろネットワーク集中型の仕事をしています。このオブジェクトは約250万のWebリクエストを作成し、それらを集約してマスターに返送します。各リクエストはSolrレスポンスで、50k未満です。レスポンスの1つのフィールド(IDとしての文字列)が抽出され、リストに追加されてマスターに返されます。このプロセスは約1〜2時間で終了します。Google Dataprocタイムアウトと強制終了excutors
しかし、実行中のある時点で、マスターがエグゼキュータのハートビートを失い、それを殺すエラーが発生し続けます。タイムアウトよりも詳細はマスターに送信されず、作業者のログには正常に実行されていることが示されます。私はこれがRAMの問題であるかどうかを確認するためにスタックドライバの監視をインストールしようとしましたが、最新のメモリ情報を持たないようにエージェントの待ち時間は最大2分になるはずです。
これはなぜ起こっているのですか?私のアイデアは、ネットワークポートがジョブから溢れている可能性があります。インスタンスがハートビートやインスタンスのメトリック、RAMの問題(私が試したかなりのRAM値で同じエラーが出ます)を送ることができないか、 Google側の問題
[YARN UIにアクセスする](https://cloud.google.com/dataproc/docs/concepts/cluster-web-interfaces)の手順に従うと、「アプリケーションマスター」実行中のSparkジョブの詳細なワーカーログをクリックして、「エグゼキュータ」タブをクリックすることができます。ここで質問に追加できる詳細なログは、問題の特定に役立ちます。 –