[大資料] hadoop HA 配置
阿新 • • 發佈:2018-11-01
前提:已經通過上一篇的環境配置好了zookeeper環境
1 叢集規劃
bigdata01.com | bigdata02.com | bigdata02.com |
---|---|---|
namenode | namenode | |
datanode | datanode | datanode |
journalnode | journalnode | journalnode |
zkfc | zkfc | |
resourcemanager | resourcemanager | |
nodemanager | nodemanager | nodemanager |
2 HDFS HA
2.1 vi hdfs-core.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>bigdata01.com:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>bigdata02.com:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>bigdata01.com:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>bigdata02.com:50070</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://bigdata01.com:8485;bigdata02.com:8485;bigdata03.com:8485/ns</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/dfs/jn</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/kfk/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.ns</name>
<value>true</value>
</property>
</configuration>
2.2 vi core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>kfk</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>bigdata01.com:2181,bigdata02.com:2181,bigdata03.com:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
2.3 分發hdfs-site.xml 和core-site.xml 到其餘機器中
2.4 啟動HA
First Step:
開啟hadoopHA的初始化
1. 在各個節點上啟動journalnode
sbin/hadoop-daemon.sh start journalnode
- 在[nn1]上,對其進行格式化,並啟動
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
- [nn2]中同步nn1的元資料
bin/hdfs namenode -bootstrapStandby
- 啟動nn2
sbin/hadoop-daemon.sh start namenode
- 將nn1切換成Active
bin/hdfs haadmin -transitionToActive nn1
- 啟動所有節點的datanode
sbin/hadoop-daemons.sh start datanode
Second Step:
故障自動轉移
1. 先關閉所有的hdfs服務
sbin/stop-dfs.sh
- 啟動zookeper叢集
#所有的機器都要執行
bin/zkServer.sh
- 初始化HA在zookeeper中的狀態
bin/hdfs zkfc -formatZK
- 啟動hdfs服務
sbin/start-dfs.sh
- 啟動DFSZK服務
sbin/hadoop-daemon.sh start zkfc
3 yarn HA
3.1 vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>10000</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>bigdata01.com</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>bigdata02.com</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>bigdata01.com:2181,bigdata01.com:2181,bigdata01.com:2181</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>
3.2 分發到其他機器
3.3 啟動
- 啟動resourcemanager
- 啟動nodemanager
- 測試mapreduce wordcount