hadoop迁移namenode
1、问题
问题:由于之前安装namenode的机器系统不太稳定,把其中一台datanode1机器与namenode节点交换身份。Datanode1做namenode,namenode做datanode1.
原理:Hadoop集群中,无论是那台机器做Namenode,只要配置指向该节点,且该节点文件路径与原Namenode一致,则其他Datanode节点就应该会很傻很天真的以为它就是Namenode节点。
2、edits和fsimage介绍
集群NameNode把文件系统(HDFS)的变化追加保存到日志文件edits中。当NameNode启动时,会从镜像文件 fsimage 中读取HDFS的状态,并且把edits文件中记录的操作应用到fsimage,也就是合并到fsimage中去。合并后更新fsimage的HDFS状态,创建一个新的edits文件来记录文件系统的变化。
与此相关的主要文件存储位置在hdfs-site.xml中设置:
<property>
<name>dfs.name.dir</name>
<value> /home/hadoop/hd_space/hdfs/name</value>
</property>
3、具体操作步骤
1. 停掉Hadoop及相关集群
2. 拷贝dfs.name.dir所指向的目录及文件新namenode节点相应目录下
3. 修改hosts文件以及主机名
Vi /etc/hosts
Vi /etd/sysconfig/network
4、重启更换的两台机器
5、重启配置好ssh无密钥登录
6、启动hadoop。迁移成功,数据完好无损。