hadoop-hdfs-ha配置-搭建
官方配置原文:
?http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html
?
?
?
?
?
?
?
?
?
?
?
?
zookeeper搭建:
node02下:
?
?
?
配置zk環(huán)境變量:
?
?
?
?
?
?
?
?ZK配置文件:
?
?
?修改為:
?
?
?
?
?分發(fā)zk:分發(fā)給 node03 和 node04?
?
?
?
?
?然后存放各自的id 和 配置zk環(huán)境變量:
?
?node03:
?
?
?
node04:
?
?
?
?
?開啟ZK服務:
node02:
?
node03:
?
node04:
?
?
?
?
?
?hadoop-HA-搭建:
?
?配置 hdfs-site.xml 文件:
?
?
?之前配置過的完全分布式的配置文件進行修改
?
?
?后面追加的內容:
#dfs.nameservices 命名空間的邏輯名稱 <property><name>dfs.nameservices</name><value>mycluster</value> </property>#dfs.ha.namenodes.[nameservice ID] 所有NameNode標示名稱 <property><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2</value> </property>#dfs.namenode.rpc-address.[nameservice ID].[name node ID] 每個namenode監(jiān)聽的RPC地址 <property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>node01:8020</value> </property><property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>node02:8020</value> </property>#dfs.namenode.http-address.[nameservice ID].[name node ID] 每個namenode監(jiān)聽的http地址。 <property><name>dfs.namenode.http-address.mycluster.nn1</name><value>node01:50070</value> </property> <property><name>dfs.namenode.http-address.mycluster.nn2</name><value>node02:50070</value> </property>#journalnode配置信息 <property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node01:8485;node2:8485;node3:8485/mycluster</value> </property>#journalnode持久化數(shù)據(jù)目錄 <property><name>dfs.journalnode.edits.dir</name><value>/var/sxt/hadoop/ha/jn</value> </property>#這里配置HDFS客戶端連接到Active NameNode的一個java類<property><name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property>#dfs.ha.fencing.methods?配置active namenode出錯時的處理類。當active namenode出錯時,一般需要關閉該進程。處理方式可以是ssh也可以是shell
<property><name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property>
#在namenode身邊啟動ZKFC 開啟自動故障轉移
<property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>
?
?
?
?
?
配置 core-site.xml 文件:
?
?
?
?
?
#fs.defaultFS 客戶端連接HDFS時,默認的路徑前綴。如果前面配置了nameservice ID的值是mycluster,那么這里可以配置為授權信息的一部分 <property><name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property>#hadoop.tmp.dir
<property><name>hadoop.tmp.dir</name> <value>/var/sxt/hadoop/ha</value> </property>
#ha.zookeeper.quorum 標記三臺zookeeper地址 <property><name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value> </property>
?
?
?
?
?
分發(fā)修改好的文件:
?
?
?
給node01 和 node02 做免秘鑰:
node01 -> node01 的免秘鑰
node01 -> node02 的免秘鑰
node02 -> node02 的免秘鑰
node02 -> node01 的免秘鑰
?
由于之前完全分布式node01已經(jīng)和自己還有node02 做過免秘鑰現(xiàn)在只需要做
node02 -> node02 的免秘鑰
node02 -> node01 的免秘鑰
實現(xiàn)方式和
node01 -> node01 的免秘鑰
node01 -> node02 的免秘鑰 一樣
?
?
node02 下:
?
node01 下:
?
?
?
?
?
?
?必須優(yōu)先啟動 journalnode:
?啟動node01 node02 node03 的 journalnode
?
?
?
?
?
?
?
?
?
?格式化namenode:
?
?
?
我這邊出現(xiàn)了報錯信息:顯示無法構建journal? 后面兩臺服務器地址寫錯了
?
?
?
?
?
?
?
?
?
?
?
?啟動namenode:
?
?
?
?
?
?
?
?
?
?
格式化ZKFC:
?
?
?
?
node04 下:
?
?
?
?
?
?
啟動服務:
?
node01:
?
?
node02:
?
?node03:
?
?
?node04:
?zoo
?
?
?
?
?node01:50070
?
?
?node02:50070
?
?
?
?
?
?
演示:
?
殺死node01:
?
?
?
?
?
?
?
?
?
?
?
?殺死node02 的 ZKFC:
?
?
?
?
?
?
停止服務:
?node01:stop-dfs.sh
?
?
??node02:zkServer.sh stop
?
?node03:zkServer.sh stop
?
?
?node04:zkServer.sh stop
?
?
?
再次啟動:
node02、node03、node04:
zkServer.sh start
?
?
node01:
hadoop-daemon.sh? start namenode
?
node02:
hdfs namenode -bootstrapStandby
?
node01:
start-dfs.sh
?
?
手動啟動historyserver。
啟動命令:mr-jobhistory-daemon.sh start historyserver
關閉命令:mr-jobhistory-daemon.sh stop historyserver
轉載于:https://www.cnblogs.com/LXL616/p/10859711.html
總結
以上是生活随笔為你收集整理的hadoop-hdfs-ha配置-搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玄元剑仙食物怎么获得
- 下一篇: RPA如何助力电信业数字化转型?