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。遷移成功,數據完好無損。