一次怀疑人生的宕机引发的故事

Hadoop集群异常重启全记录
本文记录了一次因异常断电导致Hadoop集群崩溃后的重启过程,详细介绍了从Master虚拟机启动失败到Hadoop集群服务无法启动的问题排查与解决方法,以及DataNode未完全启动的处理步骤。

背景:异常断电导致hadoop集群崩溃,hadoop集群环境的配置是VMware12 + Redhat5.4 + hadoop2.7.3 + Hive1.2.2 + JDK1.7 + MySQL 5.0。以下将记录我是如何从怀疑人生到死里逃生的过程:

1:Master虚拟机无法启动

断电后,来电重启集群,首先启动Master虚拟机,启动时遇到了如下图所示的情况:

也就是说因为系统文件故障,启动虚拟机时无法通过file system checking,幸好系统有提示:

作为一个遇到任何Linux问题都只会百度命令的小白,看到这个提示以为遇到了太乙真人,可是无论是Control + D还是输入root password,最终都只会reboot,然后重新回到上述界面,有点小失落。于是想到干脆直接删除RHELMaster.vmdk.lck文件夹及其中的文件(因为这个文件夹下的文件存储的是系统的快照),这样就相当于把因为断电引起的系统错误信息删除了,那么重启时肯定可以通过file system checking。删除,重启Master虚拟机,顺利启动(以为是顺利启动,因为当时没点开启动细节)。同时启动Slave1和Slave2虚拟机,顺利启动(这两个是真的顺利启动),并没有出现上述异常。

2:启动Hadoop集群时报错:Master: ssh: connect to host Master port 22: Connection refused

三台虚拟机启动后,在Master中启动Hadoop集群,输入命令:~/Desktop/hadoop-2.7.3/sbin/start-all.sh,结果报错:Master: ssh: connect to host Master port 22: Connection refused 。结果也在预料之中,输入jps,提示只启动了JPS,三个节点和服务都没有起来。

很自然,直接找度娘,这时候得到两个解决方案:①/etc/hosts文件出错,②sshd服务没起来。先验证①,发现/etc/hosts文件并无异常:;再验证②,系统->管理->服务->输入root 密码->sshd,果然sshd服务没有启动,那就手动启动呗,右键->开始,然后报错:No such device or address,这就有点诡异了,刚刚明明是顺利启动了虚拟机啊(因为隐藏了细节,没看到/捂脸),但这个时候可以确定:sshd服务出问题了,导致hadoop无法启动。

首先,查看当前虚拟机是否已经安装了ssh:rpm -qa |grep ssh ,可以看出已经安装了。

然后,尝试启动:service sshd start,结果启动failed,并且报错:No such device or address,既然定位到了这个错误,那就百度吧,毕竟对Linux一窍不通。

接着,核对/etc/ssh下的文件,发现sshd_config,ssh_host_dsa_key.pub,ssh_host_rsa_key.pub全部都是0KB,恍然大悟,哦,原来是断电导致sshd的配置信息全部丢失,可是到哪去找这三个文件呢,作为一个小机灵鬼,眼睛一转,那就把slave1中的这三个文件拷过来,然后随便改一下公钥和私钥不就行了,说干就干,赋/etc/ssh777权限,拷贝,改公钥,改私钥,重启sshd服务,竟然,,,成功了,哈哈哈。

然后启动hadoop:~/Desktop/hadoop-2.7.3/sbin/start-all.sh,检查服务:jps,都没问题。

3:DataNode未完全启动

先跑一个job,检查一下集群是否恢复到原来的状态,结果跑的很慢,第一感觉,不对啊,不应该这么慢,然后去master:50070下面看一下集群信息,结果发现只启动了一个DataNode,还是Master的,也就是说slave1和slave2的DataNode并未启动,没错,还得百度/摊手,度娘说是多次执行:./bin/hdfs namenode -format会造成datanode与namenode之间的clusterID不一致,解决办法:将Master的datanode中的clusterID改为namenode中的clusterID,同时将slave1和slave2的datanode中的clusterID修改为Master中namenode中的clusterID。修改完成后重新启动hadoop,再去master:50070下检查集群,此时三个datanode全部启动,至此,集群恢复到断电前状态。

转载于:https://my.oschina.net/MasterLi161307040026/blog/1828467

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值