1. 程式人生 > >流式大資料計算實踐(2)----Hadoop叢集和Zookeeper

流式大資料計算實踐(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