1. 程式人生 > >Ubuntu下ZooKeeper安裝過程

Ubuntu下ZooKeeper安裝過程

一、安裝需求 

安裝java 1.6及hadoop 1.2.*

二、安裝zookeeper 1、下載zookeeper wget http://apache.osuosl.org/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz(本次安裝3.4.3版本) 2、解壓 tar -xf zookeeper-3.4.3.tar.gz 將解壓後的zookeeper-3.4.3檔案放在系統的/home/hadooptest/中。 3、將zookeeper-3.4.3/conf目錄下的zoo_sample.cfg檔案拷貝一份,命名為為“zoo.cfg” 4、修改zoo.cfg配置檔案 修改zoo.cfg內容為: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial  # synchronization phase can take initLimit=10 # The number of ticks that can pass between  # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just  # example sakes. dataDir=/home/hadooptest/zookeeper-3.4.3/zookeeperdir/zookeeper-data dataLogDir=/home/hadooptest/zookeeper-3.4.3/zookeeperdir/logs # the port at which the clients will connect clientPort=2181 # # Be sure to read the maintenance section of the  # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 # 2888,3888 are election port server.1=zookeeper:2888:3888 其中,2888埠號是zookeeper服務之間通訊的埠,而3888是zookeeper與其他應用程式通訊的埠。而zookeeper是在hosts中已映射了本機的ip。 initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到 Leader 的 Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 5*2000=10 秒。 syncLimit:這個配置項標識 Leader 與 Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒。 server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號伺服器;B 是這個伺服器的 ip 地址;C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;D 表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。 5、建立dataDir引數指定的目錄(這裡指的是“ /home/hadooptest/zookeeper-3.4.3/zookeeperdir/zookeeper-data”),並在目錄下建立檔案,命名為“myid”。 6、編輯“myid”檔案,並在對應的IP的機器上輸入對應的編號。如在zookeeper上,“myid”檔案內容就是1。由於本次只在單點上進行安裝配置,所以只有一個server.1。若還有其他伺服器,比如地址為192.168.1.102,則在zoo.cfg檔案中還需加入server.2=192.168.1.102:2888:3888。那麼myid檔案在192.168.1.102伺服器上的內容就是2。 至此,如果是多伺服器配置,就需要將zookeeper-3.4.3目錄拷貝到其他伺服器,然後按照上述的方法修改myid。 7、在/etc/profile檔案中設定PATH 修改profile檔案: sudo vi /etc/profile export ZOOKEEPER_HOME=/home/hadooptest/zookeeper-3.4.3 PATH=$ZOOKEEPER_HOME/bin:$PATH export PATH 8、安裝完畢 三、啟動並測試zookeeper
1、在所有伺服器中執行:zookeeper-3.4.3/bin/zkServer.sh start 2、輸入jps命令檢視程序: namenode上顯示為(本次為單機配置): 7724 DataNode 19769 HMaster 7485 NameNode 8064 JobTracker 19361 QuorumPeerMain 8323 TaskTracker 7972 SecondaryNameNode 21691 Jps 19988 HRegionServer 其中,QuorumPeerMain是zookeeper程序,啟動正常。(HMaster和HRegionServer為已啟動的hbase程序,其他為安裝hadoop後啟動的程序) 3、檢視狀態:zookeeper-3.4.3/bin/zkServer.sh status JMX enabled by default Using config: /home/hadooptest/zookeeper-3.4.3/bin/../conf/zoo.cfg Mode: standalone 4、啟動客戶端指令碼:zookeeper-3.4.3/bin/zkCli.sh -server zookeeper:2181 WatchedEvent state:SyncConnected type:None path:null [zk: zookeeper:2181(CONNECTED) 0]  [zk: zookeeper:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd args         connect host:port         get path [watch]         ls path [watch]         set path data [version]         rmr path         delquota [-n|-b] path         quit          printwatches on|off         create [-s] [-e] path data acl         stat path [watch]         close          ls2 path [watch]         history          listquota path         setAcl path acl         getAcl path         sync path         redo cmdno         addauth scheme auth         delete path [version]         setquota -n|-b val path [zk: zookeeper:2181(CONNECTED) 1] ls / [hbase, zookeeper] [zk: zookeeper:2181(CONNECTED) 2]  5、停止zookeeper程序:zookeeper-3.4.3/bin/zkServer.sh stop 參考: