我发现AWS Glue设置执行程序的实例,其内存限制为5 Gb --conf spark.executor.memory=5g
,有时,在大数据集上,它会失败并显示java.lang.OutOfMemoryError
。驱动程序实例--spark.driver.memory=5g
也是如此。
有没有增加这个值的选项?
答案 0 :(得分:4)
答案 1 :(得分:3)
您可以通过编辑作业和添加作业参数来覆盖参数。我使用的关键和价值在这里:
键: - conf
值:spark.yarn.executor.memoryOverhead = 7g
这似乎违反直觉,因为设置键实际上是在值中,但它被识别出来了。因此,如果您尝试设置spark.yarn.executor.memory,则以下参数是合适的:
键: - conf
值:spark.yarn.executor.memory = 7g
答案 2 :(得分:2)
official glue documentation提示胶水不支持自定义火花配置。
AWS Glue内部还使用了几个参数名称, 您不应该设置:
-conf-AWS Glue内部。不要设置!
-debug-AWS Glue内部。不要设置!
-mode-AWS Glue内部。不要设置!
-JOB_NAME-AWS Glue内部。不要设置!
关于解决此问题的更好建议吗?
答案 3 :(得分:1)
当我有一个高度偏斜的数据集时,我遇到了这样的内存错误。就我而言,我有一桶json文件,其中包含根据json中指示的事件类型而不同的动态有效负载。无论我是否使用此处指示的配置标志并增加了DPU,我始终遇到内存不足错误。事实证明,我的事件高度偏向于两种事件类型,它们占总数据集的90%以上。在事件类型中添加“盐”并分解了高度偏斜的数据后,我没有遇到任何内存不足错误。
这是AWS EMR的博客文章,其中讨论了数据高度偏斜的同一“内存不足”错误。 https://medium.com/thron-tech/optimising-spark-rdd-pipelines-679b41362a8a
答案 4 :(得分:0)
尽管有aws文档指出不应传递--conf
参数,但我们的支持团队却告诉我们传递--conf spark.driver.memory=10g
,从而更正了我们遇到的问题