centos7搭建hadoop高可用(ha)叢集
hadoop高可用(ha)叢集實現目標:
s101和s105設定為名稱節點,可以互相切換為active狀態;
s102~104設定為資料節點和journalnode節點。
準備工作:
1.建立hadoop ha版本
1)進入ha建立目錄
cd /soft/hadoop/etc
2)複製出ha目錄
cp -r full ha //在hadoop分散式叢集的基礎上進行修改
2.ha hadoop檔案配置
1)進入ha hadoop配置檔案目錄
cd /soft/hadoop/etc/ha
2)hdfs-site.xml檔案配置
<property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <!-- myucluster下的名稱節點兩個id --> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>s101:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>s105:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>s101:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>s105:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://s102:8485;s103:8485;s104:8485/mycluster</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value> sshfence shell(/bin/true) </value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/centos/.ssh/id_rsa</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/centos/hadoop/journal</value> </property>
3).core-site.xml檔案配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
3.分發ha檔案並建立符號連結
1)進入ha檔案所在目錄
cd /soft/hadoop/etc
2)分發ha檔案到所有節點
xsync.sh ha
3)所有節點建立ha的符號連結hadoop
xcall.sh ln -sfT /soft/hadoop/etc/ha /soft/hadoop/etc/hadoop
4.啟動hadoop ha高可用叢集
1) s102~s104分別啟動journalnode節點
hadoop-daemon.sh start journalnode
2)複製s101的metadata到s105
scp -r /home/centos/hadoop/dfs [email protected]:/home/centos/hadoop/
3)啟動s101的名稱節點
hadoop-daemon.sh start namenode
4)s105節點執行名稱節點standby狀態引導
hdfs namenode -bootstrapStandby //提示是否格式化,選擇N.
5)s105節點執行edit日誌到journalnode節點的傳輸
hdfs namenode -initializeSharedEdits
6)s105啟動名稱節點
hadoop-daemon.sh start namenode
7)s101啟動所有資料節點
hadoop-daemons.sh start datanode
8)檢視所有程序
5.名稱節點從s101切換到s105
hdfs haadmin -failover nn1 nn2