使用Zookeeper 部署HDFS HA 配置
阿新 • • 發佈:2018-04-10
大數據 hadoop
- 一:系統環境配置
- 二:軟件需求
- 三:安裝zookeeper處理
- 四:編輯hadoop 配置文件
- 五:啟動服務
- 六:配置zookeeper自動故障轉移
一:系統環境配置:
承接 在上文檔hadoop 分布式的文檔進行部署
二: 軟件需求:
在前環境 狀態下增加zookeeper-3.4.6.tar.gz 包
上傳zookeeper 包到/home/hadoop/yangyang/目錄下面
三: 安裝zookeeper 環境
在master.hadoop.com 上面 tar –zxvf zookeeper-3.4.6.tar.gz rm –rf zookeeper-3.5.6.tar.gz mv zookeeper-3.4.6 zookeeper cd zookeeper/conf cp -p zoo_sample.cfg zoo.cfg vim zoo.cfg
#mkdir zookeeper/data
#echo “1” > zookeeper/data/myid
同步其它節點處理:
scp –r zoo* [email protected]:/home/hadoop/yangyang/
scp –r zoo* [email protected]:/home/hadoop/yangyang/
slave1.hadoop.com
echo “2” > zookeeper/data/myid
slave2.hadoop.com
echo “3” > zookeeper/data/myid
3.1 zookeeper 相關命令
3.1.1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容 3.1.2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據 3.1.3 創建文件,並設置初始內容: create /zk "test" 創建一個新的 znode節點“ zk ”以及與它關聯的字符串 3.1.4 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串 3.1.5 修改文件內容: set /zk "zkbak" 對 zk 所關聯的字符串進行設置 3.1.6 刪除文件: delete /zk 將剛才創建的 znode 刪除 3.1.7 退出客戶端: quit 3.1.8 幫助命令: help
master.hadoop.com
cd /home/hadoop/yangyang/zookeeper/bin
./zkServer.sh status
slave1.hadoop.com
cd /home/hadoop/yangyang/zookeeper/bin
./zkServer.sh status
slave2.hadoop.com
Zookeeper 的進入命令窗口:
./zkCli.sh
ls /
create /zk “yangyang”
四: 編輯改變hadoop 的配置文件
編輯core-site.xml 文件:
vim core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/yangyang/hadoop/data</value> </property>
編輯hdfs-site.xml 文件:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
#######################nn1###############################
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>master.hadoop.com:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>master.hadoop.com:50070</value>
</property>
#######################nn2###############################
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>slave1.hadoop.com:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>slave1.hadoop.com:50070</value>
</property>
#######################journal node#######################
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master.hadoop.com:8485;slave1.hadoop.com:8485;slave2.hadoop.com:8485/mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/yangyang/hadoop/data/jn</value>
</property>
##########################proxy###########################
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
##########################fence###########################
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
</configuration>
同步所有hadoop 的配置文件:
tar –zcvf hadoop.tar.gz hadoop
scp hadoop.tar.gz [email protected]:/home/hadoop/yangyang/
scp hadoop.tar.gz [email protected]:/home/hadoop/yangyang/
五:啟動服務
啟動所有節點journalnode 節點:
master.hadoop.com
cd /home/hadoop/yangyang/hadoop/
sbin/hadoop-daemon.sh start journalnode
啟動master.hadoop.com的namenode 與datanode
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
打開瀏覽器訪問:
slave1.hadoop.com 進行節點同步master.hadoop.com
bin/hdfs namenode –bootstrapStandby
啟動slave1.hadoop.com 節點的namenode 與datanode
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
打開瀏覽器處理
手動切換master.hadoop.com 為active 狀態:
bin/hdfs haadmin -transitionToActive nn1
創建目錄與上傳測試:
瀏覽器查看master.hadoop.com 的hdfs active 節點
瀏覽器查看slave1.hadoop.com 的hdfs standby 節點:
手動切換 將master.haoop.com 切換為standby 將slave1.hadoop.com 切換為active
master.hadoop.com:
bin/hdfs haadmin -transitionToStandby nn1
將slave1.hadoop.com 變為active 節點:
bin/hdfs haadmin -transitionToActive nn2
瀏覽器查看:
master.hadoop.com
slave1.hadoop.com瀏覽器查看:
六:配置zookeeper自動故障轉移
- 6.1. 更改配置文件
master.hadoop .com 編輯core-site.xml 在configuration 中增加 <property> <name>ha.zookeeper.quorum</name> <value>master.hadoop.com:2181,slave1.hadoop.com:2181,slave2.hadoop.com:2181</value> </property> 編輯hdfs-site.xml 文件 在configuration 中 增加: <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>
- 6.2同步所有節點
cd /home/hadoop/yangyang/hadoop/etc/hadoop/ scp core-site.xml [email protected]:/home/hadoop/yangyang/ hadoop/etc/hadoop/ scp hdfs-site.xml [email protected]:/home/hadoop/yangyang/ hadoop/etc/hadoop/
- 6.3 停掉所有服務
./stop-dfs.sh - 6.4 啟動所有節點的zookeeper
cd /home/hadoop/yangyang/zookeeper/bin
./zkServer.sh start
其他節點同樣啟動
啟動如master.hadoop.com 節點一樣 - 6.5 初始化ZK
cd /home/hadoop/yangyang/hadoop/bin/
./hdfs zkfc –formatZK - 6.6 啟動HDFS 與瀏覽器測試:
cd /home/hadoop/yangyang/hadoop/sbin/
./start-dfs.sh
jps 檢查:
master.hadoop.com
slave1.hadoop.com
slave2.hadoop.com
查看瀏覽器:
master.hadoop.com
slave1.hadoop.com - 6.7驗證故障轉移:
殺掉 master.hadoop.com 的namenode 進程
slave1.hadoop.com
啟動master.hadoop.com 的namenode
./hadoop-daemon.sh start namenode
- 6.2同步所有節點
使用Zookeeper 部署HDFS HA 配置