Hive应急故障

HiveServer2连接数上涨

现象/事件:

监控某一时刻hiveserver连接数上涨

影响范围:

任务延迟告警

故障恢复:

确认业务是否暴涨

查看HiverServer Metrics中open_operation指标,确认是否同步上涨。如果同步上涨,说明是业务量上涨引起的连接数上涨;如果open_operation没有上涨,说明业务量没有上涨,连接数上涨是因为存在某些异常情况。

业务量上涨导致连接数上涨

如果是业务量上涨导致的连接数上涨,检查页面http://ip:10002/hiveserver2.jsp确认是哪个业务

技术支持连接业务负责人确认业务量上涨

运维同学根据备份机器紧急进行扩容

异常原因导致连接数上涨

HiveServer2日志中搜索如下两个日志

Failed to connect to the MetaStore Serverorg.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed)

如果存在,大概率是因为业务客户端大规模重启导致。HiveServer2观察10分钟,如果出现探针报警或者10分钟之后依然连接数没有降下来,重启HiveServer2

udf导致进程退出

现象/事件:

udf导致hiveserver进程退出(kill -2 或者system.exit导致)

影响范围

hiveserver不能正常提供服务

故障恢复:

排查日志异常

Shell
grep -n -r
“hiveserver stopped due to thread oom”
-C
2
hive-hive-hiveserver2.log (oom导致)


grep -n -r
“hiveserver stopped due to catching sigterm & sigint”
-C
2
hive-hive-hiveserver2.log (kill -
2
或者system.exit导致)

找到shutdown前执行的sql的queryId

如这里的hive_20190801113848_830fbb6d-2836-4c47-a44e-34d1b2f76737

Generated

根据queryId找到sessionId, 如aa05d8ff-47c3-4d1b-8ce9-6aeb6ff14281根据queryId找到sessionId, 如aa05d8ff-47c3-4d1b-8ce9-6aeb6ff14281

Generated

根据sessionId找到Azkaban上的execId

Generated

根据exec id或者extraInfo交由az或者用户自己停止任务

az exec id
5678
or
extraInfo: [bdms.smilodon.azkaban.aaa:bbb bdms.smilodon.azkaban.jobinnerid:xxx bdms.smilodon.azkaban.flowinnerid:xxx]

hive on spark创建子进程太多导致os杀掉hiveserver

现象/事件:

hive on spark会在hiveserver本地启动子进程, 该进程占用操作系统250M左右; 当集群资源不足,导致作业运行时间缓慢,造成子进程过多释放不掉的时候, 会出现os杀掉hiveserver的场景;

影响范围

os杀掉hiveserver

故障恢复:

预案(杀掉所有子进程, 通知用户改用MR引擎提交):

ps -aux | grep org.apache.hive.spark.client.RemoteDriver | awk ‘{print $2}’| xargs kill -9

MetaStore FullGC

现象/事件:

MetaStore FullGC, 导致metastore从zk上断连

影响范围:

metastore服务不可用, hiveserver, spark,impala等基于metastore ha的服务均不可用

故障恢复

1. 根据关键字partition数量结合rds的告警, 判定是哪个api导致full gc, 结合调用该api的用户方(username + ip), 综合业务方的上线逻辑定位错误, 停止用户相关作业。

2. 超过10分钟, 未定位需要重启metastore服务。

ZK连接不上

现象/事件:

hiveserver因为full gc或者gc超时等原因,连接不上zk

影响范围:

hiveserver不能提供正常服务,基于zk的ha客户端不可用

故障恢复:

服务重启