Hadoop记录-日常运维操作

1.Active NameNode hang死,未自动切换

#登录当前hang死 Active namenode主机,停止Namenode,触发自
动切换。hadoop-daemon.sh stop namenode
#如果自动切换未触发,
转手动切换【可选】hdfs haadmin -ns bdpfinance - transitionToActive --forceactive nn2 --forcemanual
*假设原active节点为nn1

2.误删

1)确认删表语句或命令
拿到用户的删表语句
如 drop table t1;;
2)确认表路径
desc formatted t1; 返回:/hive/warehouse/db1/t1
3)确认回收站是否有数
据如/user/hive/.Tash/Current/hive/warehouse/db1/t1
4)移动数据回原目录
hadoop fs -mv /user/hive/.Tash/Current/hive/warehouse/db1/t1 /hive/warehouse/db1/

3.连接个别HiveServer卡住(hdfs正常,metastore正常)

1. 确认HiveServer是否
真的卡住(以10.116.107.10,端口10000为例):
beeline -u jdbc:hive2://10.116.107.10:10000 -n hive -p hive
2. 若确认该HiveServer异常,第一时间将其从zk 中踢出,防止新的连接又被分配到这台:
a. 登录10.116.100.5,进入zk命令行:/app/zookeeper/bin/zkCli.sh
b. 删除/hiveserver2 的znode下,相应主机名、端口的记录:
rmr /hiveserver2/serverUri=主机名:端口;version=2.1.1;sequence=xxxxxxxxx
3. 检查该进程堆内存情况:
a. 找到相应hiveserver的pid(根据不同hive实例,端口可
能为10000,11000或12000):
pid=`lsof -i :10000 |grep -i listen|awk '{print $2}'`
b. 打印出堆内存信息:
jmap -heap $pid
看结果中的"G1 Old
Generation",如果是99.xxxxxxxxx% used,
则hiveserver内存爆了,重启即可。
4. 重启命令
a. 停止
HiveServer:
systemctl stop hiveserver-10000.service
p.s.根据端口不同,服务名可以是(hiveserver-10000.service,hiveserver-11000.service, hiveserver-12000.service)
b. 启动HiveServer:systemctl start hiveserver-10000.service

原文地址:https://www.cnblogs.com/xinfang520/p/10648962.html