私の入力データセットは約150Gです。 私はスパーク:エグゼキュータのメモリが物理的な制限を超えています
--conf spark.cores.max=100
--conf spark.executor.instances=20
--conf spark.executor.memory=8G
--conf spark.executor.cores=5
--conf spark.driver.memory=4G
を設定していますが、データが均等執行に分散されていないので、私はここに
Container killed by YARN for exceeding memory limits. 9.0 GB of 9 GB physical memory used
を取得保管が私の質問です:
1. Did I not set up enough memory in the first place? I think 20 * 8G > 150G, but it's hard to make perfect distribution, so some executors will suffer
2. I think about repartition the input dataFrame, so how can I determine how many partition to set? the higher the better, or?
3. The error says "9 GB physical memory used", but i only set 8G to executor memory, where does the extra 1G come from?
ありがとうございました! 0.1 *あなたのエグゼキュータのメモリ設定に
spark.yarn.executor.memoryOverhead
これはデフォルト:
sparkエグゼキュータのインスタンスを20に設定しています。これは、正しく呼び出すと、8Gのエグゼキュータを20人ずつ起動することを意味します。それを減らして試してみることはできますか?それを1に減らすことが始まりです。 – ar7
こんにちは、エグゼクティブを1に減らすと、8Gメモリのエグゼキュータが1つしかないので、150Gの入力が入りません – user2628641
糸容器が十分なメモリに設定されていない可能性があります。あなたが直面しているエラーの可能な解決策? http://stackoverflow.com/a/33118489/6199146とhttp://m.blog.csdn.net/article/details?id=50387104 – ar7