Hive性能调优(三)——通过Yarn WebUI来定位性能瓶颈

一.排查长时等待调度

在这里插入图片描述
submit和start的启动间隔过长,则需要去查看所在队列信息。

二.Map任务读取小文件和大文件

一个map task的信息:
在这里插入图片描述

2021-04-21 18:56:37,942 INFO [main] org.apache.hadoop.mapred.MapTask: Processing split: 
Paths:/hive/student_tb_seq/000000_0:0+134217728,/hive/student_tb_seq/000000_0:134217728+134217728InputFormatClass: org.apache.hadoop.mapred.SequenceFileInputFormat

文件后面的偏移量+bytes大小:0+134217728,134217728+134217728

128MB是一个split,但是会合并两个split,一个map会一起读取。

要注意如果读取的文件数多数远小于128MB,没配置小文件合并,则效率会低很多。(hive默认开启了小文件合并)

一个可拆文件过大,会产生大量网络IO,尽量计算本地性。

三.reduce端数据倾斜和缓慢的shuffle

在这里插入图片描述
通过排序,来查看时间消耗的顺序。点击左侧的counter。

来定位是否出现reduce端数据倾斜和缓慢的shuffle。

在这里插入图片描述

在这里插入图片描述
有些reduce的input的数据量远大于其他reduce。

四.资源的限制

总共84个reduce,大部分都在Pending。资源不够。
在这里插入图片描述
在这里插入图片描述
查看Scheduler,vCores只有6个,其中AM需要一个,剩下5个,所以只能同时5个task运行,可以增大vCores,增大并行度。


版权声明:本文为qq_38258720原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。