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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

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

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

7、sion time時(shí)間,默認(rèn)值是2個(gè)tick time,客戶端設(shè)置的session time 如果小于這個(gè)值,則會(huì)被強(qiáng)制協(xié)調(diào)為這個(gè)最小值。maxSessionTimeout最大的session time 時(shí)間,默認(rèn)值是20個(gè)tick time. ,客戶端設(shè)置的session time 如果大于這個(gè)值,則會(huì)被強(qiáng)制協(xié)調(diào)為這個(gè)最大值。集群配置選項(xiàng)electionAlg領(lǐng)導(dǎo)選舉算法,默認(rèn)是3(fast leader election,基于TCP),0表示leader選舉算法(基于UDP),1表示非授權(quán)快速選舉算法(基于UDP),2表示授權(quán)快速選舉算法(基于UDP),目前1和2算法都沒有應(yīng)用,不建議使用

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

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

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

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

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

13、op1 $ mkdir /home/hadoop/data/zkdata/zookeeperhadoophadoop1 $ cd /home/hadoop/data/zkdata/zookeeperhadoophadoop1 zkdata$ echo 1 > myid當(dāng)以上所有步驟都完成時(shí),意味著我們 ZooKeeper 的配置文件相關(guān)的修改都做完了。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、啟動(dòng)軟件,并驗(yàn)證安裝是否成功命令啟動(dòng):zkServer.sh start停止:zkServer.sh stop查看狀態(tài):zkServer.sh status注意:雖然我們?cè)谂渲梦募袑懨髁朔?wù)器的列表信息,但是,我們還是需要去每一臺(tái)服務(wù) 器去啟動(dòng),不是一鍵啟動(dòng)集群模式每啟動(dòng)一臺(tái)查看一下狀態(tài)再啟動(dòng)下一臺(tái)啟動(dòng)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 $ 啟動(dòng)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 $ 此時(shí)在查看hadoop1的狀態(tài)啟動(dòng)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 $ 查看進(jìn)程3臺(tái)機(jī)器上都有QuorumPeerMain進(jìn)程hadoophadoop1 $ jps2499 Jps2404 QuorumPeerMain5、zookeeper做服務(wù)腳本一、編寫zookeeper啟動(dòng)腳本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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論