• 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_25injava.exe -jar zookeeper-dev-ZooInspector.jar

       

       然后就打开了ZooInspector的窗口,点击左上角的开始图标:

      

      其中,Connect String是Zookeeper的集群节点地址,采用ip:端口的方式,这个端口就是在zoo.conf中配置的clientPort参数,另外这里可以连接一个节点,也可以连接多个节点,如果是多个节点,则每个节点之前使用逗号(,)分隔,我们这里是直接连接了三个节点。

      点击OK之后,稍等片刻,显示:

      

  • 相关阅读:
    HDU5195 线段树+拓扑
    Codeforces Round #328 (Div. 2)D. Super M 虚树直径
    HDU5489 LIS变形
    BZOJ 1787: [Ahoi2008]Meet 紧急集合 LCA
    Codeforces Round #330 (Div. 2)B. Pasha and Phone 容斥
    Codeforces Round #330 (Div. 2) D. Max and Bike 二分
    Codeforces Round #277 (Div. 2) E. LIS of Sequence DP
    Codeforces Round #277 (Div. 2) D. Valid Sets DP
    内存对齐
    mui列表跳转到详情页优化方案
  • 原文地址:https://www.cnblogs.com/shanfeng1000/p/12686507.html
Copyright © 2020-2023  润新知