aws glue:数据倾斜还是不倾斜?

bd1hkmkf  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(510)

我在aws glue的工作失败了:
调用o567.pywritedynamicframe时出错。作业因阶段失败而中止:阶段31.0中的任务168失败4次,最近的失败:阶段31.0中的任务168.3丢失(tid 39474,ip-10-0-32-245.ec2.internal,executor 102):executlostfailure(executor 102因某个正在运行的任务而退出)原因:容器因超出内存限制而被yarn杀死。使用22.2 gb的22 gb物理内存。考虑提升spark.yarn.executor.memoryoverhead或禁用yarn.nodemanager.vmem-check-enabled,因为yarn-4714。
主要信息是 Container killed by YARN for exceeding memory limits. 22.2 GB of 22 GB physical memory used. 我对小dfs使用广播,对大表使用salt技术。
输入由75gb的json文件组成。
我对输入文件使用了32mb的分组:

additional_options={
    'groupFiles': 'inPartition',
    'groupSize': 1024*1024*32,
},

输出文件用256个分区写入:

output_df = output_df.coalesce(256)

在aws glue中,我使用60g.2xexecutors=60x(8vcpu,32gb内存,128gb磁盘)启动作业。
下面是表示此作业的度量的图。从这一点来看,数据看起来并不偏斜。。。我错了吗?
欢迎任何建议,成功运行这个!

shyt4zoc

shyt4zoc1#

尝试使用 repartition 而不是 coalesce . 后者将根据您提供的分区数执行完整的执行。在您的例子中,它尝试使用 256 partitions ,当它不能处理输入数据量时,您将得到错误。

相关问题