zookeeper簡易配置及hadoop高可用安裝
zookeeper介紹
是一個分散式服務的協調服務,叢集半數以上可用(一般配置為奇數臺),
快速選舉機制:當叢集中leader掛掉,所有小弟會投票選舉出新的leader。
快速同步資料:zk將會儲存小量用於服務做協調的資料。
標準檔案系統用於儲存大量資料;而zk儲存小量協調資料
標準檔案系統檔案就是檔案,目錄就是目錄;zk中檔案既是目錄。
1.zookeeper的安裝與啟動
解壓並配置環境變數
配置./conf/zoo.cfg
tickTime=2000 zk中時間單元
initLimit=5 小弟連線老大的超時時間
syncLimit=2 同步資料的超時時間
dataDir=/home/zkdata
clientPort=2181
server.100=hadoop01:2888:3888
server.200=hadoop02:2888:3888
server.300=hadoop03:2888:3888
100(x)是server的id,2888是各個服務的通訊埠,3888選舉埠
分發到每一臺伺服器中
建立資料目錄,並建立myid檔案
mkdir /home/zkdata
echo 100 > /home/zkdata/myid
啟動zk的服務:
zkServer.sh status/start/stop [./conf/zoo.cfg]
連線zk的叢集:
zkCli.sh [-server hadoop02:2181]
2.zk的簡單使用
增 : create /name 'sand' 建立永久節點
create -s /name 'sand' 建立臨時順序節點
create -e /name 'sand' 建立臨時節點
get該節點資訊:ephemeralOwne不為0 則是臨時節點,其值為SessionID
刪: delete /name 刪除無子節點的節點
rmr /name/sex 遞迴刪除
改: set /name 'me' 更新節點
查: ls /name/ 檢視name節點下節點資訊
get /name 檢視name節點資料
3.hadoop高可用配置
參照官網完成叢集XML檔案配置
第一次hdfs的高可用流程:
先啟動zk叢集(格式化zkfc之前必須要啟動zk叢集)
zkServer.sh start
啟動journalnode叢集: (不啟動namenode無法格式化)
hadoop-daemons.sh start journalnode
選擇一臺namenode進行格式化,然後並啟動
hdfs namenode -format
hadoop-daemon.sh start namenode
再在另一臺namenode的伺服器上進行拉去元資料操作(手動遠端copy)
hdfs namenode -bootstrapStandby
格式化zkfc
hdsf zkfc -formatZK
啟動hdfs的模組:
start-dfs.sh
測試是否自動切換namenode: