Hive应急故障
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
根据queryId找到sessionId, 如aa05d8ff-47c3-4d1b-8ce9-6aeb6ff14281根据queryId找到sessionId, 如aa05d8ff-47c3-4d1b-8ce9-6aeb6ff14281
根据sessionId找到Azkaban上的execId
根据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客户端不可用
故障恢复:
服务重启
以上内容对您是否有帮助?