流式大資料計算實踐(2)----Hadoop叢集和Zookeeper
一、前言
1、上一文搭建好了Hadoop單機模式,這一文繼續搭建Hadoop叢集
二、搭建Hadoop叢集
1、根據上文的流程得到兩臺單機模式的機器,並保證兩臺單機模式正常啟動,記得第二臺機器core-site.xml內的fs.defaultFS引數值要改成本機的來啟動,啟動完畢後再改回來
2、清空資料,首先把執行單機模式後生成的資料全部清理掉
rm -rf /work/hadoop/nn/current rm -rf /work/hadoop/dn/current
hdfs namenode -format
3、啟動叢集
(1)storm1作為namenode節點,所以在這臺機上面執行命令啟動namenode
$HADOOP_PREFIX/sbin/hadoop-daemon.sh --script hdfs start namenode
(2)storm2作為datanode節點,所以在這臺機上面執行命令啟動datanode
$HADOOP_PREFIX/sbin/hadoop-daemon.sh --script hdfs start datanode
(3)通過jps命令可以看到對應的節點,然後通過50070的控制檯可以看到storm2的datanode節點
三、ZooKeeper
1、Zookeeper是分散式框架經常要用到的應用協調服務,相當於讓分散式內的每個元件同步起來
2、Zookeeper安裝
(1)下載Zookeeper的tar.gz包,並解壓
(2)配置環境變數
vim /etc/profile #set zookeeper env export ZOOKEEPER_HOME=/work/soft/zookeeper-3.4.13 source /etc/profile
(3)配置ZooKeeper
①進入到Zookeeper目錄的conf資料夾,可以看到裡面有一個配置檔案的模板zoo_sample.cfg,將模板複製一份到zoo.cfg
②然後編輯內容,只需要修改Zookeeper的存放資料的目錄(記得建立對應資料夾)
vim /work/soft/zookeeper-3.4.13/conf/zoo.cfg dataDir=/work/zookeeper/data
③繼續編輯bin目錄下的zkEnv.sh檔案來修改Zookeeper存放日誌的目錄(記得建立對應資料夾)
vim /work/soft/zookeeper-3.4.13/bin/zkEnv.sh ZOO_LOG_DIR=/work/zookeeper/logs
④進入到剛剛設定的資料目錄,建立一個檔案myid,並寫入本臺機器的Zookeeper Id,這個id的取值範圍是1-255,我這裡取得分別是1和2
vim /work/zookeeper/data/myid 1
(4)啟動單機版Zookeeper
①首先啟動Zookeeper
$ZOOKEEPER_HOME/bin/zkServer.sh start
②進入到Zookeeper的控制檯檢視資料目錄是否正常
$ZOOKEEPER_HOME/bin/zkCli.sh ls /
(5)啟動叢集版Zookeeper
①先停止單機版
$ZOOKEEPER_HOME/bin/zkServer.sh stop
②把剛剛單機版產生的資料刪除,執行刪除目錄時,一定要小心不要輸錯,還有記得再把剛才的myid檔案創建出來- -
rm -rf /work/zookeeper/data/* rm -rf /work/zookeeper/logs/*
③進入Zookeeper的conf目錄,編輯zoo.cfg,在檔案末尾配置Zookeeper叢集的節點資訊
vim /work/soft/zookeeper-3.4.13/conf/zoo.cfg server.1=storm1:2888:3888 server.2=storm2:2888:3888
④在每臺機器啟動Zookeeper,然後通過jps命令檢視程序是否存在
$ZOOKEEPER_HOME/bin/zkServer.sh start jps
⑤使用檢視叢集狀態命令,在每臺機器執行,可以發現一臺是leader,另一臺是follower,說明叢集是OK的
$ZOOKEEPER_HOME/bin/zkServer.sh status