Zookeeper基礎教程(二):Zookeeper安裝


  上一篇說了,一個Zookeeper集群一般認為至少需要3個節點,所以我們這里安裝需要准備三台虛擬機:  

  # 192.168.209.133 test1
  # 192.168.209.134 test2
  # 192.168.209.135 test3

  當然,我們也可以先安裝一台,然后克隆出多台,再進行配置也可以。

  然后我們需要先下載Zookeeper,進入官網,我這里選擇了Apache ZooKeeper 3.4.14的版本,因為Zookeeper是采用java寫的,因此我們我們還需要准備jdk:

  Zookeeper官網下載:http://zookeeper.apache.org/releases.html

  JDK下載:https://www.oracle.com/java/technologies/

  百度雲下載:https://pan.baidu.com/s/13dPvlNhaLocDxCr84-Y0rw (提取碼: 9ir4)

  另外說明一下,博主使用的Linux版本是Ubuntu16.04的server版

  安裝JDK

  下載好包之后,我們可以先部署jdk,這個網上有很多教程,這里就不細述了  

  # 解壓
  sudo tar -zxvf jdk-8u202-linux-x64.tar.gz
  # 移動到指定目錄,我這里移動到/opt目錄
  sudo mv jdk1.8.0_202 /opt/
  # 在/usr/local/bin下創建java的軟連接
  sudo ln -s /opt/jdk1.8.0_202/bin/java /usr/local/bin/java
  # 檢驗java是否部署完成
  java -version

  

  安裝Zookeeper

  接下來是安裝Zookeeper,這里我們使用的是Zookeeper編譯好了的包,因此我們只需要直接部署就可以了 

  # 下載好之后,進去Zookeeper包所在目錄進行解壓
  sudo tar -zxvf zookeeper-3.4.14.tar.gz
  # 解壓之后的文件放在當前目錄的zookeeper-3.4.14目錄中,我們可以將它們移動到我們自己的某個目錄,比如這里我將它放到/opt目錄下
  sudo mv zookeeper-3.4.14 /opt/

  之后就是配置了。我們進入Zookeeper的根目錄,里面的conf目錄下有一個zoo_sample.cfg文件,這個是Zookeeper配置文件的樣板,我們將它復制一份並重命名為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=/tmp/zookeeper
	# the port at which the clients will connect
	clientPort=2181
	# the maximum number of client connections.
	# increase this if you need to handle more clients
	#maxClientCnxns=60
	#
	# 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

  這些事Zookeeper的默認配置,包括心跳、端口等等,如果你不確定他們的作用,可以不用改它們,用默認的就行了,但是這里我們為了方便,修改dataDir配置,同時新增dataLogDir配置:  

  # 日志文件所在目錄
  dataLogDir=/opt/zookeeper-3.4.14/logs
  # 數據文件保存目錄
  dataDir=/opt/zookeeper-3.4.14/data

  現在我們只需要配置集群節點就行了,這個配置比較特殊,它是采用特定格式描述的:

  server.n=ip:A:B
  # n是節點編號,一般從1開始
  # ip是集群中節點所在服務器IP地址
  # A是LF通信端口,表示該服務器與集群中的leader交換的信息的端口,默認是2888
  # B是選舉端口,表示選舉新leader時服務器間相互通信的端口(當leader掛掉時,其余服務器會相互通信,選擇出新的leader),默認是3888

  因為我們為集群准備了3台虛擬機,因此我們的配置應該是這樣的:  

  server.1=192.168.209.133:2888:3888
  server.2=192.168.209.134:2888:3888
  server.3=192.168.209.135:2888:3888

  將它加到zoo.conf中結果如下:

  

   上面說了server.n是配置集群的服務節點,接下來就是配置當前服務器時那個節點,進入我們上面配置的那個dataDir目錄,里面有一個myid文件(如果沒有的話就自己創建),打開后輸入1,並保存,這里的1表示的就是server.n中的n,告訴Zookeeper當前服務器所屬的節點編號

  

   然后可以啟動Zookeeper了,啟動Zookeeper是通過Zookeeper根目錄下的bin目錄下的zkServer.sh文件來啟動的,我們可以先查看它有哪些命令:  

  ./bin/zkServer.sh --help

     

  # 啟動,默認是后台啟動,當前shell不會被阻塞
  zkServer.sh start
  # 啟動,會導致shell被阻塞
  zkServer.sh start-foreground
  # 停止
  zkServer.sh stop
  # 重啟
  zkServer.sh restart
  # 查看當前節點狀態
  zkServer.sh status
  # upgrade是升級,print-cmd是打印命令,這兩個用的少

  我們現在啟動Zookeeper並查看狀態:

  

   提示我們Zookeeper已啟動,但是根據zoo.conf中的配置,Zookeeper還不能提供相關的服務,這個是因為我們才安裝部署完成了一台,另外兩台沒有部署,而我們配置了3個節點,就相當於兩個節點故障,從而Zookeeper就不會提供相關服務了。

  接着我們安裝上面的步驟部署另外兩台,並將另外兩台啟動后,在查看狀態:

  節點1(192.168.209.133  test1)

  

  節點2(192.168.209.134  test2)

   

  節點3(192.168.209.135  test3)

  

   從上面輸出的結果可以看到,第二個節點已經被選舉為Leader,其他兩個則是Follower

  Zookeeper安裝好之后,建議將它加到開機啟動項中,或者使用守護進程工具(如supervisor)進行管理。

  ZooInspector連接Zookeeper

   Zookeeper安裝好了,我們可以嘗試連接試試,這里使用的是ZooInspector工具,它是使用java開發出來的,因此也需要安裝jdk,因為我們是在windows上運行ZooInspector,因此需要安裝windows版的jkd,不能使用上面linux版的jdk:

  百度雲下載:https://pan.baidu.com/s/1TCwep5Y7xnZffsT8WLjJUw (提取碼: ixex)

  當前,如果你電腦里已經安裝好jdk了,這個jdk就沒必要了。jdk和ZooInspector下載好之后,解壓到某個目錄,我這里將它們都解壓到D盤

  

  

   我們可以將jdk配置到環境變量中,如果不配置也是可以的,ZooInspector解壓出來的build目錄下有個zookeeper-dev-ZooInspector.jar文件,我們打開cmd,進入到zookeeper-dev-ZooInspector.jar文件所在目錄,輸入

  # 這個jdk地址根據自己的目錄輸入就可以了
  D:\jdk1.8.0_25\bin\java.exe -jar zookeeper-dev-ZooInspector.jar

   

   然后就打開了ZooInspector的窗口,點擊左上角的開始圖標:

  

  其中,Connect String是Zookeeper的集群節點地址,采用ip:端口的方式,這個端口就是在zoo.conf中配置的clientPort參數,另外這里可以連接一個節點,也可以連接多個節點,如果是多個節點,則每個節點之前使用逗號(,)分隔,我們這里是直接連接了三個節點。

  點擊OK之后,稍等片刻,顯示:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM