zookeeper安装(Linux)

来源:互联网 发布:全民飞机双打飞跃算法 编辑:程序博客网 时间:2024/06/02 05:52

zookeeper安装(Linux)

单机模式

  • 从Apache官网下载一个zookeeper稳定版本,本次采用的是zookeeper-3.4.9版本。

    http://apache.fayea.com/zookeeper/zookeeper-3.4.9/
  • 解压zookeeper-3.4.9.tar.gz文件到安装目录下:

    tar -zxvf zookeepre-3.4.9.tar.gz
  • zookeeper要求Java运行环境,并且需要jdk版本1.6以上。为了以后的操作方便,可以对zookeeper的环境变量进行配置(该步骤可忽略)。在/etc/profile文件中加入以下内容:

    export ZOOKEEPER_HOME=/opt/zookeeper-3.4.9export PATH=$ZOOKEEPER_HOME/bin;$ZOOKEEPER_HOME/conf
  • zookeeper服务需要用户自己创建一个配置文件。默认配置文件路径为 zookeeper-3.4.9/conf/目录下,文件名为zoo.cfg。进入conf/目录下可以看到一个zoo_sample.cfg文件,可供参考。

    #新建文本文件,在文件中输入以下内容并保存
    vim zoo.cfg
    #服务器与客户端之间交互的基本时间单元(ms)
    tickTime=2000
    #保存zookeeper数据路径
    dataDir=/home/jxwch/hadoop/data/zookeeper
    #保存zookeeper日志路径,当此配置不存在时默认路径与dataDir一致
    dataLogDir=/home/jxwch/hadoop/dataLog/zookeeper
    #客户端访问zookeeper时经过服务器端时的端口号
    clientPort=2181

注意:使用单机模式时需要注意,在这种配置方式下,如果zookeeper服务器出现故障,zookeeper服务将会停止。


集群模式

zookeeper最主要的应用场景是集群,最好使用奇台数服务器。如zookeeper拥有5台服务器,那么在最多2台服务器出现故障后,整个服务还可以正常使用。下载版本相同的zookeeper并配置相应的环境变量。配置每台机器上的conf/zoo.cfg配置文件

  • 从Apache官网下载zookeeper稳定版本,本次采用的是zookeeper-3.4.9版本。

    http://apache.fayea.com/zookeeper/zookeeper-3.4.9/
  • 解压zookeeper-3.4.9.tar.gz文件到安装目录下:

    tar -zxvf zookeepre-3.4.9.tar.gz
  • zookeeper要求Java运行环境,并且需要jdk版本1.6以上。为了以后的操作方便,可以对zookeeper的环境变量进行配置(该步骤可忽略)。在/etc/profile文件中加入以下内容:

    export ZOOKEEPER_HOME=/opt/zookeeper-3.4.9export PATH=$ZOOKEEPER_HOME/bin;$ZOOKEEPER_HOME/conf
  • 配置对应机器的配置文件参数

    #新建文本文件,在文件中输入以下内容并保存vim zoo.cfg #服务器与客户端之间交互的基本时间单元(ms)tickTime=2000#保存zookeeper数据路径dataDir=/home/jxwch/hadoop/data/zookeeper#保存zookeeper日志路径,当此配置不存在时默认路径与dataDir一致dataLogDir=/home/jxwch/hadoop/dataLog/zookeeper#客户端访问zookeeper时经过服务器端时的端口号clientPort=2181#允许follower连接并同步到leader的初始化时间,它以tickTime的倍数来表示。当超过设置倍数的tickTime时间,则连接失败。initLimit=10#leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认follower服务器与leader服务器之间断开链接。syncLimit=5#server.id=host:port:port : 表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台服务器应该知道其他服务器的信息。在服务器的data(dataDir参数所指定的目录)下创建一个文件名为myid的文件,这个文件的内容只有一行,指定的是自身的id值。比如,服务器“1”应该在myid文件中写入“1”。这个id必须在集群环境中服务器标识中是唯一的,且大小在1~255之间。这一样配置中,zoo1代表第一台服务器的IP地址。第一个端口号(port)是从follower连接到leader机器的端口,第二个端口是用来进行leader选举时所用的端口。所以,在集群配置过程中有三个非常重要的端口:clientPort:2181、port:2888、port:3888。server.1=zoo1:2888:3888server.2=zoo2:2888:3888server.3=zoo3:2888:3888#限制连接到zookeeper服务器客户端的数量maxClientCnxns=60

伪集群模式

伪集群模式就是在单机环境下模拟集群的zookeeper服务。在zookeeper集群配置文件中,clientPort参数用来设置客户端连接zookeeper服务器的端口。server.1=IP1:2888:3888中,IP1指的是组成zookeeper服务器的IP地址,2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口。由于伪集群模式中,我们使用的是同一台服务器,也就是说,需要在单台机器上运行多个zookeeper实例,所以我们必须要保证多个zookeeper实例的配置文件的client端口不能冲突。在单台机器上建立伪集群模式步骤如下:

  • 将zookeeper-3.4.9.tar.gz分别解压到server1,server2,server3目录下:

    tar -zxvf zookeeper-3.4.9.tar.gz -C /home/user/server1 tar -zxvf zookeeper-3.4.9.tar.gz -C /home/user/server2tar -zxvf zookeeper-3.4.9.tar.gz -C /home/user/server3
  • 在server1/data/目录下创建文件myid文件并写入“1”,同样在server2、server3进行同样的操作。

    cd /home/user/server1/data/vim myid
  • 配置server1/conf/、server2/conf/、server3/conf/目录下的zoo.cfg文件:

server1/conf/zoo.cfg文件

# Server 1# 服务器与客户端之间交互的基本时间单元(ms)tickTime=2000# 此配置表示允许follower连接并同步到leader的初始化时间,它以tickTime的倍数表示。当超过设置倍数的tickTime时间,则连接失败。initLimit=10# Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认follower服务器与leader服务器之间断开链接syncLimit=5# 保存zookeeper数据,日志路径dataDir=/home/jxwch/server1/datadataLogDir=/home/jxwch/server1/dataLog# 客户端与zookeeper相互交互的端口clientPort=2181#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。server.1= 127.0.0.1:2888:3888server.2= 127.0.0.1:2889:3889server.3= 127.0.0.1:2890:3890# 限制连接到zookeeper服务器客户端的数量maxClientCnxns=60

server2/conf/zoo.cfg文件

# Server 2# 服务器与客户端之间交互的基本时间单元(ms)tickTime=2000# zookeeper所能接受的客户端数量initLimit=10# 服务器与客户端之间请求和应答的时间间隔syncLimit=5# 保存zookeeper数据,日志路径dataDir=/home/jxwch/server2/datadataLogDir=/home/jxwch/server2/dataLog# 客户端与zookeeper相互交互的端口clientPort=2182#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。server.1= 127.0.0.1:2888:3888server.2= 127.0.0.1:2889:3889server.3= 127.0.0.1:2890:3890# 限制连接到zookeeper服务器客户端的数量。#maxClientCnxns=60

server3/conf/zoo.cfg文件

# Server 3# 服务器与客户端之间交互的基本时间单元(ms)tickTime=2000# zookeeper所能接受的客户端数量initLimit=10# 服务器与客户端之间请求和应答的时间间隔syncLimit=5# 保存zookeeper数据,日志路径dataDir=/home/jxwch/server3/datadataLogDir=/home/jxwch/server3/dataLog# 客户端与zookeeper相互交互的端口clientPort=2183#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。server.1= 127.0.0.1:2888:3888server.2= 127.0.0.1:2889:3889server.3= 127.0.0.1:2890:3890# 限制连接到zookeeper服务器客户端的数量#maxClientCnxns=60

  
注意:在上述文件中除了clientPort不同之外,dataDir和dataLogDir也不同。不要忘记dataDir所对应的目录中创建的myid文件来指定对应的zookeeper服务器实例。

zookeeper伪集群模式运行

  • 启动server1服务器:
cd server1/bin./zkServer.sh start
  • 此时出现以下提示信息,表示启动成功:

注意:打开zookeeper.out文件会有错误日志。产生Waring信息是因为zookeeper服务的每个实例都拥有全局的配置信息,他们在启动的时候需要随时随地的进行leader选举,此时server1就需要和其他两个zookeeper实例进行通信,但是,另外两个zookeeper实例还没有启动起来,因此将会产生上述所示的提示信息。当我们用同样的方式启动server2和server3后就不会再有这样的警告信息了。

2017-02-23 16:17:46,940 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@400] - Cannot open channel to 2 at election address /127.0.0.1:3889java.net.ConnectException: 拒绝连接
  • 分别启动server2、server3后,在每个服务上运行zkServer.sh status命令查看集群状态

server1服务器此时处于follower模式

server2被选举为leader
    说明。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 转弯灯上右下左 后左转向灯 左转灯 调头需要等左转灯吗 鼠标左键失灵 鼠标左键失灵怎样修复 鼠标左键 左win键失效 鼠标左键连点器 鼠标左键失灵右键正常 鼠标连点器左键 鼠标左键和右键一样 shift鼠标左键 windows10开始菜单左键点击无效 桃运香修 左妻右妾 香酥黄花鱼 酥骨带鱼的做法 花生酥的做法与配方 油条酥的做法 左金丸 加味左金丸 左金丸的配方 左金丸不适合哪些人 加味左金丸功效与作用 左金丸的功效与作用 临高金彤宾馆 天刀左锐进坐标 左锐进 左雅婷 左颂升 车左 耳鸣左兹丸的作用 巧乐兹 爱吃巧乐兹 圈住你爱吃巧乐兹 巧乐兹多少钱 巧乐兹图片 巧乐兹雪糕价格 伊利巧乐兹价格 巧乐兹零售价 伊利巧乐兹