Hive专题-数据倾斜定位篇

486 阅读1分钟

对于如何解决数据倾斜,网上的资料也有很多。之前也总结过关于hive和spark的解决方案文章:

Spark数据倾斜之骚操作解决方案

Hive千亿级数据倾斜解决方案

数据开发必经之路-数据倾斜

但是对于如何定位到数据倾斜,大多数同学或许都是根据经验判断,可能对于某个reduce一直处于99%进度或者一个任务计算处理超过1个小时以上就可以判定为倾斜问题了。但是无法证明其自己的猜测或者事后进行数据抽样。那么本篇仅以Hive为例,来分享下如何在事中定位到是否倾斜以及倾斜对应的key。

1、首先从yarn log层面入手

2、倾斜其本质是数据不均匀问题,一般是在reduce端发生,那么需要查看reduce端日志

图片

3、如果有同学看过Hive专题-从SQL聊Hive底层执行原理文章,那么就可以定位到具体某段sql或者某个Operator Task可能会出现shuffle,比如join场景。

图片

从上图中的信息中可以看到是常规的Join类型,其倾斜的key以及rows counter都有很明显的提示,那么就可以根据其信息进行针对性的解决