資源描述:
《ZooKeeper 安裝與配置》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、ZooKeeper安裝、配置如題本文介紹的是ZooKeeper的安裝和配置過(guò)程,此過(guò)程非常簡(jiǎn)單,關(guān)鍵是如何應(yīng)用(將放在下節(jié)及相關(guān)節(jié)中介紹)。?單機(jī)安裝、配置:?安裝非常簡(jiǎn)單,只要獲取到Zookeeper的壓縮包并解壓到某個(gè)目錄如:/home/frank/ZooKeeperInstall/zookeeper-3.3.3下。?配置文件存放在/conf/目錄下,將zoo_sample.cfd文件名稱改為zoo.cfg,?缺省的配置內(nèi)容如下:??#ThenumberofmillisecondsofeachticktickTime=2000#Th
2、enumberofticksthattheinitial?#synchronizationphasecantakeinitLimit=10#Thenumberofticksthatcanpassbetween?#sendingarequestandgettinganacknowledgementsyncLimit=5#thedirectorywherethesnapshotisstored.dataDir=/home/frank/ZooKeeperInstall/data??//這是我修改后的#theportatwhichtheclie
3、ntswillconnectclientPort=2181????·tickTime:這個(gè)時(shí)間是作為Zookeeper服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè)tickTime時(shí)間就會(huì)發(fā)送一個(gè)心跳?!ataDir:顧名思義就是Zookeeper保存數(shù)據(jù)的目錄,默認(rèn)情況下,Zookeeper將寫數(shù)據(jù)的日志文件也保存在這個(gè)目錄里?!lientPort:這個(gè)端口就是客戶端連接Zookeeper服務(wù)器的端口,Zookeeper會(huì)監(jiān)聽(tīng)這個(gè)端口,接受客戶端的訪問(wèn)請(qǐng)求。當(dāng)這些配置項(xiàng)配置好后,你現(xiàn)在就可以啟動(dòng)Zookeeper了:
4、進(jìn)入/bin目錄?$zkServer.shstart啟動(dòng)后要檢查Zookeeper是否已經(jīng)在服務(wù),可以通過(guò)netstat?–ano命令查看是否有clientPort端口號(hào)在監(jiān)聽(tīng)服務(wù)。???集群安裝、配置:??Zookeeper的集群模式的安裝和配置也不是很復(fù)雜,所要做的就是增加幾個(gè)配置項(xiàng)。集群模式除了缺省的配置項(xiàng)還要在zoo.cfg文件末尾增加集群中的機(jī)器ip、端口等:server.1=192.168.0.101:2888:3888server.2=192.168.0.102:2888:3888其中,在這里要用到缺省配置中的initLi
5、mit、syncLimit??·initLimit:這個(gè)配置項(xiàng)是用來(lái)配置Zookeeper接受客戶端(這里所說(shuō)的客戶端不是用戶連接Zookeeper服務(wù)器的客戶端,而是Zookeeper服務(wù)器集群中連接到Leader的Follower服務(wù)器)初始化連接時(shí)最長(zhǎng)能忍受多少個(gè)心跳時(shí)間間隔數(shù)。當(dāng)已經(jīng)超過(guò)5個(gè)心跳的時(shí)間(也就是tickTime)長(zhǎng)度后Zookeeper服務(wù)器還沒(méi)有收到客戶端的返回信息,那么表明這個(gè)客戶端連接失敗。總的時(shí)間長(zhǎng)度就是5*2000=10秒·syncLimit:這個(gè)配置項(xiàng)標(biāo)識(shí)Leader與Follower之間發(fā)送消息,請(qǐng)求
6、和應(yīng)答時(shí)間長(zhǎng)度,最長(zhǎng)不能超過(guò)多少個(gè)tickTime的時(shí)間長(zhǎng)度,總的時(shí)間長(zhǎng)度就是2*2000=4秒·server.A=B:C:D:其中A是一個(gè)數(shù)字,表示這個(gè)是第幾號(hào)服務(wù)器;B是這個(gè)服務(wù)器的ip地址;C表示的是這個(gè)服務(wù)器與集群中的Leader服務(wù)器交換信息的端口;D表示的是萬(wàn)一集群中的Leader服務(wù)器掛了,需要一個(gè)端口來(lái)重新進(jìn)行選舉,選出一個(gè)新的Leader,而這個(gè)端口就是用來(lái)執(zhí)行選舉時(shí)服務(wù)器相互通信的端口。如果是偽集群的配置方式,由于B都是一樣,所以不同的Zookeeper實(shí)例通信端口號(hào)不能一樣,所以要給它們分配不同的端口號(hào)。除了修改z
7、oo.cfg配置文件,集群模式下還要配置一個(gè)文件myid,這個(gè)文件在dataDir目錄下,這個(gè)文件里面就有一個(gè)數(shù)據(jù)就是A的值,Zookeeper啟動(dòng)時(shí)會(huì)讀取這個(gè)文件,拿到里面的數(shù)據(jù)與zoo.cfg里面的配置信息比較從而判斷到底是那個(gè)server。?以上是在namenode的配置,用scp命令將namenode節(jié)點(diǎn)的的/home/frank/ZooKeeperInstall拷貝到其余所有主機(jī)的/home/frank目錄下。?最后,在所有節(jié)點(diǎn)上的/bin下執(zhí)行$zkServer.shstart,分別啟動(dòng)。分別啟動(dòng)的過(guò)程中,會(huì)報(bào)異常:2011
8、-05-1615:07:21,171-WARN?[WorkerSenderThread:QuorumCnxManager@384]-Cannotopenchannelto1atelectionaddress