Hadoop主节点宕机第二节点补救

本人大三大数据专业,上周​​​​​初学如何搭建hadoop环境。配置好了静态ip搭建完了hadoop分布式集群后,开始搭建Zookeeper软件,之后搭建hbase环境(https://blog.csdn.net/master_hunter/article/details/108704148)。在此领域本人有诸多不明确疑问,可能文章会有些许错误,望大家在评论区指正,本篇文章错误将会不断更正维护。

项目场景:

在装载了Hbase之后打算搭建数据仓库(Hive),安装完了Hive之后在安装Mysql的时候发现hadoop的hdfs所有服务启动不了,进入hadoop目录查看发现只有conf.empty,进入所有配置文件都带有后缀.rpmsave。个人觉得应该是rpm时路径设置错误导致。


问题描述:

命令hadoop时not found,hdfs无反应,进入hadoop目录只有conf.empty文件,进入所有配置文件都带有后缀.rpmsave。


原因分析:

可能配置Hive的时候环境配错HADOOP_HOME=/usr/local/hadoop路径导致,可能rpmsql的时候打错命令导致。


解决方案:

利用启动服务第二节点secondnamenode的hadoop2来补救,我原本备份的hadoop1还没有搭建hbase和zookeeper,所有以后还要记得实时动态备份hadoop啊(泪目)。

克隆hadoop2改为hadoop1名字,进入hadoop1后修改其节点的hostname

/etc/sysconfig/network

将hadoop2改为hadoop1,之后需要清除DataNode数据写入目录信息(因为目录里有DataNode的编号信息,如不清除,DataNode只能启动一个)

rm -rf /data/dn/*

设置克隆后的hadoop1的mac地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

mac可以在虚拟机网络配置看到

修改后记得改网关

rm -rf /etc/udev/rules.d/70-persistent-net.rules

重启后修改新生成/etc/udev/rules.d/70-persistent-net.rules 中为NAME="eth0"。

这时候根据hadoop映射原理应该已经识别到了hadoop1,开启namenode服务,根据第二节点的冷备份功能克隆的hadoop1会回溯原hadoop1状态,但进入其他节点查看其余服务都能正常启动但是DataNode无法启动。

先暂停所有节点服务(根据自己在其他虚拟机部署的服务来关闭相应服务)

service hadoop-hdfs-datanode stop

service hadoop-yarn-resourcemanager stop

service hadoop-mapreduce-historyserver stop

service hadoop-hdfs-namenode stop

service hadoop-hdfs-secondarynamenode stop

然后在hadoop1、hadoop2和hadoop3上分别删除/data/dn/current,执行以下命令

rm -rf /data/dn/current

启动顺序:namenode——>secondnamenode——>所有datanode——>recourcemanager——>所有机器的nodemanager——>historyserver.

之后再启动节点相应的服务,发现hadoop1以及可以正常使用。问题解决

猜你喜欢

转载自blog.csdn.net/master_hunter/article/details/108749468