开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

大数据计算MaxCompute这是发生数据倾斜了吗?

大数据计算MaxCompute这是发生数据倾斜了吗? 我的sql如下set odps.sql.unstructured.oss.commit.mode =true;
set odps.sql.mapper.split.size=256;
set odps.sql.metering.value.max=1500;
set odps.stage.mapper.mem = 2048;
set odps.stage.mapper.jvm.mem = 4096;
insert OVERWRITE TABLE dwd_oss_risk3_service_et_di PARTITION(pt,country,app_type)
select * from dwd_risk3_service_et_di
where app_type !='third'
and pt<'2024-03-01'
and pt>='2024-02-01' 348a0f024d6f8bc411b43ad8a5c602ef.png
这是报错信息 be04a9027a7377459a194ddff65a45e6.png

展开
收起
真的很搞笑 2024-03-21 07:45:18 32 0
2 条回答
写回答
取消 提交回答
  • 根据您提供的SQL语句和报错信息,无法确定是否发生了数据倾斜。数据倾斜是指数据在分布式计算过程中不均匀地分布在各个节点上,导致某些节点处理的数据量过大而其他节点处理的数据量过小,从而影响整体的计算效率。

    要判断是否发生了数据倾斜,需要查看具体的报错信息以及集群的资源使用情况。通常,数据倾斜会导致某些节点的CPU、内存或磁盘I/O等资源被大量占用,从而导致作业运行时间延长或失败。

    建议您检查MaxCompute的日志和监控信息,以获取更多关于数据倾斜的详细信息。此外,您还可以尝试调整SQL语句中的分区键、过滤条件或优化查询逻辑,以减少数据倾斜的可能性。

    2024-03-31 21:35:07
    赞同 展开评论 打赏
  • oom了。调整一下这几个flag
    set odps.stage.mapper.mem=8192; // 默认2048
    set odps.stage.reducer.mem=8192; // 默认2048
    set odps.stage.joiner.mem=8192; // 默认2048
    少用udf或者不用,这几个值最大可以设置到12288
    如果还不行,就只能单独导入了。你的数据量太大了。还不行就试试加点reduce.num 的数量,set odps.stage.reducer.num =xxx; ,此回答整理自钉群“MaxCompute开发者社区2群”

    2024-03-21 08:45:12
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载