您好,登錄后才能下訂單哦!
先下載zookeeper的linux安裝包 //安裝zookeeper必須要先安裝jdk,現在都是1.8以上的版本
//注意版本的控制,現在線上版本 zookeeper3.4.8無明顯bug,生產上要控制版本
上傳到linux中。
然后解壓到指定的文件目錄下 tar -zxvf zookeeper... -C /usr/local/apps/
cd app/
cd zookeeper.../看一下他的目錄結構
里面的jar包就一個zookeeper-3.4.5.jar
bin目錄下有運行的命令
conf里是配置文件,首先到配置文件下去配置
cd conf/
要修改的配置文件為zoo_sample.cfg(我們需要改名字)
mv zoo_sample.cfg zoo.cfg
ls -l
zoo.cfg就是我們要修改的配置文件
vi zoo.cfg中修改為dataDir=/usr/local/apps/zookeeper-3.4.6/data工作目錄
在最后加一下
他必須知道我們的集群里面有哪些服務器
server.1=hadoop-server-00:2888:3888
server.2=hadoop-server-01:2888:3888
server.3=hadoop-server-02:2888:3888
(其中2181代表:客戶端與服務器連接所用的端口)
(其中2888代表:leader與follower之間的通信用的端口)
(其中3888代表:follower之間選舉投票用的端口)
這里注意:
在后面的生產中,這里要寫成這樣 server.1=ip:2888:3888
server.2=ip:2888:3888
server.3=ip:2888:3888
因為:寫主機名,zk能起來,kafka也能起來,但是kafka他去解析ZK的時候,他不通過etc/hosts 以后會出問題
這里面,我們就下IP,這里注意下
要在這個 /root/app/zookeeper-3.4.5/data下創建data的工作目錄
mkdir data
cd data/
要在data這里面創建一個文件,里面寫一個這臺服務器在zookeeper里面的編號
echo 1 > myid(必須叫myid不能用別的名字)
這是在一臺主機上面配置完成,下面我們需要把配置文件分發到每個機器上去
切換到安裝目錄/usr/local/apps/ 把這個配好的zookeeper拷貝到目標機器上去
scp -r zookeeper-3.4.6/ hadoop-server-01:/usr/local/apps/
scp -r zookeeper-3.4.6/ hadoop-server-02:/usr/local/apps/
分別拷貝到01 02機器上去
因為在主機00這臺機器上我們設置的myid為1 所以我們在01 02這兩臺機器上要分別設置myid為2 3
在hadoop-server-01上
切換到/usr/local/apps/zookeeper-3.4.6/data
cd zookeeper-3.4.6/data/
ll
cat myid
echo 2 >myid
在hadoop-server-02上同上
到目前為止zookeeper就配置完成,接下來就我如何啟動他
2019/1/27 星期日
注意這里,我們還需要修改zookeeper的啟動內存大小 //此步驟詳情,見深度學習kafka研究筆記
啟動zookeeper集群
啟動zookeeper的命令在bin目錄下
cd bin/
ll
【zkServer.sh(是linux中的啟動命令)
zkserver.cmd(是windows中的啟動命令)】
./zkServer.sh start
jps看一下會看到QuorumpeerMain
但在其他的機器中看不到程序進程的啟動(正常),因為這個啟動腳本不負責把其他機器上的服務進程啟動起來 每臺機器都需要手動啟動,也可以寫一個啟動的腳本(這里我們手動啟動)
每臺機器上都是通過選舉來推薦出leader server所以不知道那臺機器上是leader server那臺機器上是follower server 因此我們可以通過 ./zkServer.sh status來看每臺機器上到底是什么server
當三個節點的時候,我殺掉1臺,他還可以正常工作,殺掉2臺就不能正常工作了
zookeeper有一個規律:集群中只要有半數以上節點活著,zookeeper就會正常工作,必須要半數以上,
那為什么一定要超過半數,歸根于投票,因為集群中的投票算法是隨機的,也就是說一點要有一個機器被選上當leader server所以當小于半數的時候就不能選舉出leader server
集群中配置服務器節點數量最好是奇數
zookeeper的功能://只有2個功能,其他的功能都是基于zk實現的
也就是第三方,要你查數據的時候,可以返還給客戶端,所以具體他是不知道干什么的
(最重要的功能也就是替客戶端保管數據,為客戶提供數據的監聽服務)
zookeeper中的數據節點
每一個節點稱為znode 通過路徑來訪問
每一個znode維護著,數據,stat數據結構(ACL 時間戳及版本號)
每個節點存儲的數據量很小,KB級別(狀態數據,往往是一下標志,不能存儲大數據)
zonde有永久節點(只要不是人為的刪除就不會消失,下次打開還有),和零時節點(只要斷開了,就沒有了,下次打開也不會有了,因為刪除了)之分
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。