AWS Glueは、executorのインスタンスを5 Gbのメモリ制限でセットアップしました--conf spark.executor.memory=5g
そして時々、大きなデータセットではJava.lang.OutOfMemoryError
。同じことは、ドライバーインスタンス--spark.driver.memory=5g
。この値を増やすオプションはありますか?
公式の接着剤ドキュメント は、接着剤がカスタムspark config。
また、AWS Glueが内部で使用する、決して設定してはいけない引数名がいくつかあります。
--conf — AWS Glueの内部。設定しないでください!
--debug — AWS Glueの内部。設定しないでください!
--mode — AWS Glueの内部。設定しないでください!
--JOB_NAME — AWS Glueの内部。設定しないでください!
この問題を解決するためのより良い提案はありますか?
ジョブを編集してジョブパラメータを追加することにより、パラメータをオーバーライドできます。使用したキーと値は次のとおりです。
キー:--conf
値:spark.yarn.executor.memoryOverhead = 7g
設定キーは実際には値の中にあるため、これは直感に反しているように見えましたが、認識されていました。したがって、spark.yarn.executor.memoryを設定しようとする場合、次のパラメーターが適切です。
キー:--conf
値:spark.yarn.executor.memory = 7g
--conf
パラメータを渡さないでください。AWSサポートチームは--conf spark.driver.memory=10g
私たちが抱えていた問題を修正しました
データセットに大きな偏りがあると、このようなメモリ不足エラーが発生します。私の場合、jsonで示されたイベントタイプに基づいて異なる動的ペイロードを含むjsonファイルのバケットがありました。ここで示した構成フラグを使用してDPUを増やしても、メモリ不足エラーが発生し続けました。私のイベントは、データセット全体の90%を超えるいくつかのイベントタイプに大きく偏っていたことがわかりました。イベントタイプに「塩」を追加し、非常に歪んだデータを分割すると、メモリ不足エラーは発生しませんでした。
これは、AWS EMRのブログ投稿で、非常に歪んだデータを使用した同じメモリ不足エラーについて説明しています。 https://medium.com/thron-tech/optimising-spark-rdd-pipelines-679b41362a8a