4、ZooKeeper+的集群安裝_第1頁
4、ZooKeeper+的集群安裝_第2頁
4、ZooKeeper+的集群安裝_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、集群搭建一、ZooKeeper 的集群安裝ZooKeeper 軟件安裝須知鑒于 ZooKeeper 本身的特點,服務器集群的節(jié)點數推薦設置為奇數臺。我這里我規(guī)劃為三臺, 為別為 hadoop1,hadoop2,hadoop3ZooKeeper 的下載下載地址:此處使用的是3.4.14版本解壓安裝到自己的目錄hadoophadoop1 $ tar -zxvf zookeeper-3.4.14.tar.gz -C apps/ZooKeeper 運行最重要的四個東西1、修改配置文件hadoophadoop1 zookeeper-3.4.14$ cd conf/hadoophadoop1 conf$

2、mv zoo_sample.cfg zoo.cfghadoophadoop1 conf$ vi zoo.cfg 基本配置tickTime心跳基本時間單位,毫秒級,ZK基本上所有的時間都是這個時間的整數倍。initLimittickTime的個數,表示在leader選舉結束后,followers與leader同步需要的時間,如果followers比較多或者說leader的數據灰常多時,同步時間相應可能會增加,那么這個值也需要相應增加。當然,這個值也是follower和observer在開始同步leader的數據時的最大等待時間(setSoTimeout)syncLimittickTime的個數,

3、這時間容易和上面的時間混淆,它也表示follower和observer與leader交互時的最大等待時間,只不過是在與leader同步完畢之后,進入正常請求轉發(fā)或ping等消息交互時的超時時間。dataDir內存數據庫快照存放地址,如果沒有指定事務日志存放地址(dataLogDir),默認也是存放在這個路徑下,建議兩個地址分開存放到不同的設備上。clientPort配置ZK監(jiān)聽客戶端連接的端口在配置文件末尾添加server.serverid=host:tickpot:electionportserver:固定寫法serverid:每個服務器的指定ID(必須處于1-255之間,必須每一臺機器不能

4、重復)host:主機名tickpot:心跳通信端口electionport:選舉端口高級配置dataLogDir將事務日志存儲在該路徑下,比較重要,這個日志存儲的設備效率會影響ZK的寫吞吐量。globalOutstandingLimit(Java system property: zookeeper.globalOutstandingLimit)默認值是1000,限定了所有連接到服務器上但是還沒有返回響應的請求個數(所有客戶端請求的總數,不是連接總數),這個參數是針對單臺服務器而言,設定太大可能會導致內存溢出。preAllocSize(Java system property: zookeep

5、er.preAllocSize)默認值64M,以KB為單位,預先分配額定空間用于后續(xù)transactionlog 寫入,每當剩余空間小于4K時,就會又分配64M,如此循環(huán)。如果SNAP做得比較頻繁(snapCount比較小的時候),那么請減少這個值。snapCount(Java system property: zookeeper.snapCount)默認值100,000,當transaction每達到snapCount/2+rand.nextInt(snapCount/2)時,就做一次SNAPSHOT,默認情況下是50,000100,000條transactionlog就會做一次,之所以用隨

6、機數是為了避免所有服務器可能在同一時間做snapshot.traceFile (Java system property: requestTraceFile)maxClientCnxns默認值是10,一個客戶端能夠連接到同一個服務器上的最大連接數,根據IP來區(qū)分。如果設置為0,表示沒有任何限制。設置該值一方面是為了防止DoS攻擊。clientPortAddress與clientPort匹配,表示某個IP地址,如果服務器有多個網絡接口(多個IP地址),如果沒有設置這個屬性,則clientPort會綁定到所有IP地址上,否則只綁定到該設置的IP地址上。minSessionTimeout最小的ses

7、sion time時間,默認值是2個tick time,客戶端設置的session time 如果小于這個值,則會被強制協調為這個最小值。maxSessionTimeout最大的session time 時間,默認值是20個tick time. ,客戶端設置的session time 如果大于這個值,則會被強制協調為這個最大值。集群配置選項electionAlg領導選舉算法,默認是3(fast leader election,基于TCP),0表示leader選舉算法(基于UDP),1表示非授權快速選舉算法(基于UDP),2表示授權快速選舉算法(基于UDP),目前1和2算法都沒有應用,不建議使用

8、,0算法未來也可能會被干掉,只保留3(fast leader election)算法,因此最好直接使用默認就好。initLimittickTime的個數,表示在leader選舉結束后,followers與leader同步需要的時間,如果followers比較多或者說leader的數據灰常多時,同步時間相應可能會增加,那么這個值也需要相應增加。當然,這個值也是follower和observer在開始同步leader的數據時的最大等待時間(setSoTimeout)syncLimittickTime的個數,這時間容易和上面的時間混淆,它也表示follower和observer與leader交互時的

9、最大等待時間,只不過是在與leader同步完畢之后,進入正常請求轉發(fā)或ping等消息交互時的超時時間。leaderServes(Java system property: zookeeper.leaderServes) 如果該值不是no,則表示該服務器作為leader時是需要接受客戶端連接的。為了獲得更高吞吐量,當服務器數三臺以上時一般建議設置為no。cnxTimeout (Java system property: xTimeout) 默認值是5000,單位ms 表示leaderelection時打開連接的超時時間,只用在算法3中。ZK的不安全配置項skipACL(Java systempr

10、operty: zookeeper.skipACL) 默認值是no,忽略所有ACL檢查,相當于開放了所有數據權限給任何人。forceSync(Java systemproperty: zookeeper.forceSync) 默認值是yes, 表示transactionlog在commit時是否立即寫到磁盤上,如果關閉這個選項可能會在斷電時丟失信息。jute.maxbuffer(Java system property: jute.maxbuffer)默認值0xfffff,單位是KB,表示節(jié)點數據最多1M。如果要設置這個值,必須要在所有服務器上都需要設置。授權認證配置項DigestAuthen

11、ticationProvider.superDigest(Java system property only: zookeeper.DigestAuthenticationProvider.superDigest) 設置這個值是為了確定一個超級用戶,它的值格式為super:<base64encoded(SHA1(idpassword)> ,一旦當前連接addAuthInfo超級用戶驗證通過,后續(xù)所有操作都不會checkACL.2、將配置文件分發(fā)到集群其他機器中hadoophadoop1 apps$ scp -r zookeeper-3.4.14/ hadoop2:$PWDhadoo

12、phadoop1 apps$ scp -r zookeeper-3.4.14/ hadoop3:$PWD然后是最重要的步驟,一定不能忘了。 去你的各個 ZooKeeper 服務器節(jié)點,新建目錄 dataDir=/home/hadoop/data/zkdata,這個 目錄就是你在 zoo.cfg 中配置的 dataDir 的目錄,建好之后,在里面新建一個文件,文件 名叫 myid,里面存放的內容就是服務器的 id,就是 server.1=hadoop01:2888:3888 當中的 id, 就是 1,那么對應的每個服務器節(jié)點都應該做類似的操作 拿服務器 hadoop1 舉例:hadoophado

13、op1 $ mkdir /home/hadoop/data/zkdata/zookeeperhadoophadoop1 $ cd /home/hadoop/data/zkdata/zookeeperhadoophadoop1 zkdata$ echo 1 > myid當以上所有步驟都完成時,意味著我們 ZooKeeper 的配置文件相關的修改都做完了。3、配置環(huán)境變量hadoophadoop1 $ vi .bashrc #Zookeeperexport ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.14export PATH=$PATH:$

14、ZOOKEEPER_HOME/bin保存退出hadoophadoop1 $ source .bash4、啟動軟件,并驗證安裝是否成功命令啟動:zkServer.sh start停止:zkServer.sh stop查看狀態(tài):zkServer.sh status注意:雖然我們在配置文件中寫明了服務器的列表信息,但是,我們還是需要去每一臺服務 器去啟動,不是一鍵啟動集群模式每啟動一臺查看一下狀態(tài)再啟動下一臺啟動hadoop1hadoophadoop1 $ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /home/had

15、oop/apps/zookeeper-3.4.14/bin/./conf/zoo.cfgStarting zookeeper . STARTEDhadoophadoop1 $ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4.140/bin/./conf/zoo.cfgError contacting service. It is probably not running.hadoophadoop1 $ 啟動hadoop2hadoophadoop2 $

16、zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4.14/bin/./conf/zoo.cfgStarting zookeeper . STARTEDhadoophadoop2 $ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4.14/bin/./conf/zoo.cfgMode: leaderhadoophadoo

17、p2 $ 此時在查看hadoop1的狀態(tài)啟動hadoop3hadoophadoop3 $ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4.14/bin/./conf/zoo.cfgStarting zookeeper . STARTEDhadoophadoop3 $ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /home/hadoop/apps/zookeeper-3.4

18、.14/bin/./conf/zoo.cfgMode: followerhadoophadoop3 $ 查看進程3臺機器上都有QuorumPeerMain進程hadoophadoop1 $ jps2499 Jps2404 QuorumPeerMain5、zookeeper做服務腳本一、編寫zookeeper啟動腳本vim /etc/init.d/zookeeper#!/bin/bash # description: zookeeper Start Stop Restart Status # processname: zookeeper # chkconfig: 234 20 80 #安裝jdk的路徑JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH #安裝zookeeper的路徑CATALINA_HOME=/home/zookeepercase $1 in start) sh $CATALINA_HOME/bin/zkServer.s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論