大SQL引发HBase写入慢
问题背景与现象
5月11日16:32 至16:38, 集群业务出现多次请求超时,业务成功率下降。
2021-05-11 16:33:12,026 [http-bio-9778-exec-919] INFO - SysErr - java.net.SocketTimeoutException: callTimeout=9000, callDuration=9101: Call to *00d/*.*.*.10:21026 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=1700596386, waitTime=9001, operationTimeout=9000 expired. row '54040LX6420217220210511104617611255' on table '*_CASHINFO_REG' at region=*_CASHINFO_REG,54021,1596796497670.6806b8f1f2612500d61b937dcc5c0b1e., hostname=*00d,21026,1571251401999, seqNum=53355482
2021-05-11 16:33:18,458 [http-bio-9778-exec-908] INFO - SysErr - java.net.SocketTimeoutException: callTimeout=9000, callDuration=9102: Call to *2qu/*.*.*.133:21025 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=1700598547, waitTime=9001, operationTimeout=9000 expired. row '07285P8K211933520210511111414810225' on table '*_CASHINFO_REG' at region=*_CASHINFO_REG,07260,1596796497670.6fd38a9fec0989c5d0a71bbc288c9634., hostname=*2qu,21025,1593884730889, seqNum=52648653
问题分析
-
收集集群HBase、HDFS 日志导入工具。
-
HBase响应情况分析:
-
HBase 中 responseTooSlow 日志打印从16:32开始持续到16:36,说明对应时间HBase 响应时间较高,与业务问题时间匹配。
-
RegionServer 中对应时间也出现大量的slow sync 日志打印,说明对应时间HBase 向HDFS写入慢。
-
-
DataNode写入慢分析:
-
HBase 的Slow sync 大多为向HDFS写入慢导致,查看DataNode 的写入慢类型,90%为writeToMirror 慢,说明对应时间点存在网络慢的情况。
-
检查写入慢的节点分布情况,各节点分布均匀,不存在慢节点的情况。
-
但检查对应时间段的DataNode 写入操作,发现存在明显的激增。
-
-
NameNode块分配分析:
-
对应时间段存在大量的写入,为确定写入的罪魁祸首,根据NameNode 分配块的记录,发现大量数据写入如下两个目录。
/user/hive/warehouse/xxxx.db/.hive-staging_hive_2021-05-11_16-31-34_692_9198555342130624858-1 sq临时目录 /user/hive/warehouse/xxxx.db/t_202105111605957_51cc5220_d97f_471e_b584_abcb12f7cdb1 临时表目录
-
解决办法
异常时间段运行hive sql写入hdfs数据量增大,占用大量网络带宽,hdfs写入变慢,hbase侧写入性能下降,业务侧入库超时。建议根据异常目录排查一下hive sql运行情况,大sql在hbase业务低峰期运行减小对hbase入库业务的影响。
- 点赞
- 收藏
- 关注作者
评论(0)