hive 提交不到yarn_08235.15.1HDFS慢导致Hive查询慢问题分析

本文分析了CDH集群中Hive查询慢的问题,发现主要原因是HDFS性能下降和大量小文件的存在。HDFS的磁盘IO性能降低和NameNode处理小文件的锁竞争导致了Hive提交到YARN的时间延长,影响了查询效率。解决方案包括优化磁盘性能和合并Hive生成的小文件。
摘要由CSDN通过智能技术生成

作者:周鹏辉

文档编写目的

CDH集群在业务高峰的时候,偶尔会出现Hive 查询慢的现象,本文通过分析Hive出现查询慢时候的集群状态,查找导致Hive查询慢的原因。

  • 文档概述

1.异常现象

2.异常分析

3.总结

  • 生产环境

1.CDH和CM版本:CDH5.15.1和CM5.15.1

2.集群启用Kerbeos+OpenLDAP+Sentry

异常现象

1.10月14日14:40左右,业务反应集群Hive查询慢,然后查看各租户资源池空闲。为了确认导致当时集群查询慢的原因,进行了如下测试。使用hive用户root.default资源池提交如下query,发现确实响应慢,selectcount(*)一个81行数据的表耗时2分钟。

select count(*)  from cor_credit_id ;
application_1600315084574_2190734

f1c9587a0d79d8e7f3263486a7c149ac.png

2.查看此时HiveServer2压力不大

76688eadecb435ecca97f9f029acb26c.png

97c5f2035f4874a0844ba95e11464c12.png

ee705fafd4dbe45563f079b57b64b649.png

624b51c871fa75327791d0611e4eaea5.png

异常分析

3.1 HiveServer2和YARN层面分析

1. 首先我们先看 query 在 HiveServer2中的运行情况:

1). Query提交时间是 14:45:

2020-10-14 14:45:29,547 INFO org.apache.hadoop.hive.ql.Driver: [HiveServer2-Handler-Pool: Thread-21234249]: Compiling command(queryId=hive_20201014144545_5b55640c-a133-43f3-a34b-1afedde1e271): select count(*) from cor_credit_id

2). Query很快完成编译,提交到编译完成耗时毫秒级别完成:

2020-10-14 14:45:29,752 INFO org.apache.hadoop.hive.ql.Driver: [HiveServer2-Handler-Pool: Thread-21234249]: Completed compiling command(queryId=hive_20201014144545_5b55640c-a133-43f3-a34b-1afedde1e271); Time taken: 0.205 seconds

3). Query 很快进入后台执行:

2020-10-14 14:45:29,764 INFO org.apache.hadoop.hive.ql.Driver: [HiveServer2-Background-Pool: Thread-21432574]: Executing command(queryId=hive_20201014144545_5b55640c-a133-43f3-a34b-1afedde1e271): select count(*) from cor_credit_id

4).接下来 HiveServer2相当于要执行 hadoop jar命令, 因为需要上传所有与此 Query 有关的依赖文件(比如至少有 hive-exec.jar、 还有所有的UDF jar 文件)到HDFS,这一步到最后向 YARN 提交作业花了几乎 1 分半钟的时间。

2020-10-14 14:45:30,066 WARN org.apache.hadoop.mapreduce.JobResourceUploader: [HiveServer2-Background-Pool: Thread-21432574]: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
...
2020-10-14 14:46:52,914 WARN org.apache.hadoop.hdfs.DFSClient: [HiveServer2-Background-Pool: Thread-21432574]: Slow waitForAckedSeqno took 39371ms (threshold=30000ms). File being written: /user/hive/.sta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值