HADOOP的HA搭建

進入到執行:/soft/hadoop-2.7.1/etc/hadoop_cluster$ gedit hdfs-site.xml

[配置部分]

[hdfs-site.xml]

1.配置名稱服務:dfs.nameservices

名稱服務的邏輯名。

<property>

  <name>dfs.nameservices</name>

  <value>mycluster</value>

</property>

2.配置nameservice中每個namenode

dfs.ha.namenodes.[nameservice ID]

<property>

  <name>dfs.ha.namenodes.mycluster</name>

  <value>nn1,nn2</value>

</property>

注意:目前的hadoop2.7.2最多隻能配置2namenode

3.配置每個namederpc地址

<property>

  <name>dfs.namenode.rpc-address.mycluster.nn1</name>

  <value>s1:8020</value>

</property>

<property>

  <name>dfs.namenode.rpc-address.mycluster.nn2</name>

  <value>s8:8020</value>

</property>

4.配置每個namenodewebui地址

<property>

  <name>dfs.namenode.http-address.mycluster.nn1</name>

  <value>machine1.example.com:50070</value>

</property>

<property>

  <name>dfs.namenode.http-address.mycluster.nn2</name>

  <value>machine2.example.com:50070</value>

</property>

5.配置namenode的共享edit log目錄

<property>

  <name>dfs.namenode.shared.edits.dir</name>

  <value>qjournal://s1:8485;s7:8485;s8:8485/mycluster</value>

</property>

 

6.配置客戶端容災代理供應商類

供客戶端用來檢測那個是namenode是活頁節點。

<property>

  <name>dfs.client.failover.proxy.provider.mycluster</name>

  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

7.(可選的)配置HA防護方法名集合.

QJM防止腦裂發生,不存在兩個active node

可以配置sshfence或者shell腳本。

8.配置hdfs的文件系統

[core-site.xml]

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://mycluster</value>

</property>

9.配置JN的本地存放數據(edit log)的目錄

<property>

  <name>dfs.journalnode.edits.dir</name>

  <value>/home/ubuntu/hadoop/journal</value>

</property>

 

2、把core-site.xml文件的客戶機名改成如下再頒發給每個虛擬機:<property>

  <name>fs.defaultFS</name>

  <value>hdfs://mycluster</value>

 

3、然後回到hdfs-site.xml裏面把<property>

  <name>fs.defaultFS</name>

  <value>hdfs://mycluster</value>

</property>刪掉。同樣頒發給每個虛擬機

 

4、接下來啓動jn進程即:hadoop-daemon.sh starat journalnode

(我是在s1s7s8上分別啓動journalnode進程。我一共八臺虛擬機)

 

5、將s1hadoop目錄下的 dfs拷貝到s8中。即執行:scp -r dfs ubuntu@s8:/home/ubuntu/hadoop

 

6、在開啓一個namenode節點的情況下,登錄:ssh s8的虛擬機上執行hdfs namenode -bootstrapStandby

 

7、再停止namenode節點,然後 在s1虛擬機上執行:hdfs namenode -initializeSharedEdits

 

8、分別在s1s8上啓動namenode即:執行hadoop-daemno.sh start namenode

 

9、最後啓動所有的數據節點:hadoop-daemons.sh start datanode (hadoop-daemons.sh是啓動所有的節點)

 

管理ha過程

 

1、手動完成狀態切換:

hdfs haadmin -transitionToActive nn1

hdfs haadmin -transitionToStandbby nn1

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章