本文汇总了Hive使用时的常见问题。
作业长时间处于等待状态,如何处理?
您可以通过以下步骤定位问题:
- 在EMR控制台的访问链接与端口页面,单击YARN UI所在行的链接。
- 单击Application ID。
- 单击Tracking URL的链接。可以看到有多个作业处于等待状态。

- 在左侧导航中,单击Scheduler。即可进入队列,您可以看一下当前队列的繁忙程度,来分析是因为队列中没有空闲资源,还是当前任务确实比较耗时。如果是队列资源紧张,您可以考虑切换到空闲队列,否则需要优化代码。

Map端是否读取了小文件?
您可以通过以下步骤定位问题:
- 在EMR控制台的访问链接与端口页面,单击YARN UI所在行的链接。
- 单击Application ID。进入Map Task的详情页面,可以看到每个Map Task读取的数据量,如下图所示,读取的数据量是2个字节记录。如果大部分的Map Task读取的文件量都比较小,就需要考虑小文件合并。

您也可以通过查看Map Task的Log,获取更多的信息。
Reduce Task任务耗时,是否出现了数据倾斜?
您可以通过以下步骤定位问题:
- 在EMR控制台的访问链接与端口页面,单击YARN UI所在行的链接。
- 单击Application ID。
- 在Reduce Task列表页面,按照完成时间逆序排序,找出Top耗时的Reduce Task任务。

- 单击Task的Name链接。
- 在Task详情页面,单击左侧的Counters。
查看当前Reduce Task中Reduce Input bytes和Reduce shuffle bytes的信息,如果比其他的Task处理的数据量大很多,则说明出现了倾斜问题。
该文章对您有帮助吗?
