1.Mapreduce 调优

根据maps/reduces个数、对应的avg time调整mapreduce.job.mapsmapreduce.job.reduces,控制平均时间在30分钟左右(比如maps 数调小一半,avg time增加一倍)

因为设置太多maps/reduces了,每个map/reduce都得去抢资源,都浪费在排队上了

2.hive 调优

增加Map数量——减小分片

set mapreduce.input.fileinputformat.split.minsize=4096000000;
set mapreduce.input.fileinputformat.split.maxsize=4096000000;

reduce 控制

set mapred.reduce.tasks=1000;    
set hive.exec.reducers.max=1000;

控制平均时间在30分钟左右(比如maps 数调小一半,avg time增加一倍)

2.spark 任务调优

3.Flink 任务调优

反压(Backpressure)排查办法:
1)在监控图上找到有反压的最下游Task节点,去Job DAG图中找到该Task的直接下游,问题就出在这个Task
——这个任务里是Flat Map ...

2)在监控图的顶部,Task处选择该Task,过滤掉无关信息

3)查看接收端buffer总体利用率的图,观察各subtask之间是否平衡(都100%表示平衡,部分100%部分0%表示不平衡)

4)选择接收端buffer最高的subtask,找到它所在的container id(如一样高,随意选择一个)

5)去Flink UI打开Task Managers页面,找到这个container,点进去,再点Thread Dump

6)在Thread dump页面里搜索:英文引号+Task名称前缀,找到最后一个匹配的线程

 7)如调用栈显示不全且不足够用于分析,获取完整的调用栈

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐