1. 程式人生 > >centos7搭建hadoop高可用(ha)叢集

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