我在AWS Glue中有一份工作失败了:
调用o567.pyWriteDynamicFrame时出错。工作因阶段失败而中止:阶段31.0中的任务168失败4次,最近一次失败:阶段31.0中丢失的任务168.3 (TID 39474,IP-10-0-32-245.ec2):ExecutorLostFailure (执行器102因运行任务之一退出)原因:超过内存限制的纱线杀死了容器。22.2 GB的22 GB物理内存使用。考虑提高spark.yarn.executor.memoryOverhead或禁用yarn.nodemarager.vmem-检查启用,因为纱-4714。
主要消息是Container killed by YARN for exceeding memory limits. 22.2 GB of 22 GB physical memory used.
我曾用广播小dfs和盐技术更大的桌子。
输入由要处理的75 to文件组成。
对于输入文件,我使用了32 of的分组:
additional_options={
'groupFiles': 'inPartition',
'groupSize': 1024*1024*32,
},输出文件使用256个分区编写:
output_df = output_df.coalesce(256)在AWS Glue中,我使用60 G2X执行器= 60 x (8 vCPU,32 GB内存,128 GB磁盘)启动作业。
下面是表示这项工作的指标的图。因此,数据看上去并没有偏差.我说错了吗?
任何成功运行的建议都是欢迎的!

发布于 2020-09-27 03:57:02
尝试使用repartition而不是coalesce。后者将根据您提供的分区的数量完成完整的执行。在您的示例中,它尝试使用256 partitions处理所有输入数据,当它无法处理输入数据卷时,您将得到错误。
https://stackoverflow.com/questions/64078657
复制相似问题