zoukankan      html  css  js  c++  java
  • 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之后,稍等片刻,显示:

      

  • 相关阅读:
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    SVN分支
    SVN分支
    SVN 版本回退
    SVN 版本回退
    如何在excel中取消合并单元格后内容自动填充?
    如何在excel中取消合并单元格后内容自动填充?
    如何让自己像打王者荣耀一样发了疯、拼了命的学习?
  • 原文地址:https://www.cnblogs.com/shanfeng1000/p/12686507.html
Copyright © 2011-2022 走看看