1.Mapreduce 调优
根据maps/reduces个数、对应的avg time调整mapreduce.job.maps、mapreduce.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)如调用栈显示不全且不足够用于分析,获取完整的调用栈