Linux下部署zookeeper集群

  1. 下载zookeeper安装包
    下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

  2. 环境准备
    1. 准备三台虚拟机
    2. 每台机器上都安装好jdk环境
    3. 全网统一hosts映射配置
    4. 关闭防火墙

  3. 上传zookeeper安装包

    https://blog.csdn.net/weixin_37490221/article/details/80844825
    
  4. 解压

    [root@hadoop05 local]# tar -zxvf zookeeper-3.4.6.tar.gz 
    [root@hadoop05 local]# ln -s zookeeper-3.4.6 zookeeper  (建立软连接)
    
  5. 删除多余的文件(可忽略)

    [root@hadoop05 zookeeper]# rm -rf *.txt *.xml docs/ src/ dist-maven/
    [root@hadoop05 zookeeper]# ll
    total 1344
    drwxr-xr-x  2 1000 1000    4096 Feb 20  2014 bin
    drwxr-xr-x  2 1000 1000    4096 Feb 20  2014 conf
    drwxr-xr-x 10 1000 1000    4096 Feb 20  2014 contrib
    drwxr-xr-x  4 1000 1000    4096 Feb 20  2014 lib
    drwxr-xr-x  5 1000 1000    4096 Feb 20  2014 recipes
    -rw-rw-r--  1 1000 1000 1340305 Feb 20  2014 zookeeper-3.4.6.jar
    -rw-rw-r--  1 1000 1000     836 Feb 20  2014 zookeeper-3.4.6.jar.asc
    -rw-rw-r--  1 1000 1000      33 Feb 20  2014 zookeeper-3.4.6.jar.md5
    -rw-rw-r--  1 1000 1000      41 Feb 20  2014 zookeeper-3.4.6.jar.sha1
    
  6. 设置环境变量
    注意:每台zookeeper都需要修改

    1. 打开环境变量配置文件
      [root@hadoop05 zookeeper]# vim /etc/profile
      
    2. 修改环境变量,在profile文件中加入下面内容
      #set zookeeper environment
      export ZOOKEEPER_HOME=/usr/local/zookeeper     
      export PATH=$PATH:${ZOOKEEPER_HOME}/bin
      
    3. 加载配置文件,使之生效
      source /etc/profile
  7. 修改Zookeeper配置文件

    [root@hadoop05 conf]# cp zoo_sample.cfg  zoo.cfg 
    [root@hadoop05 conf]# vim zoo.cfg 
    
    dataDir=/usr/local/zookeeper/zkdata  #此目录很重要,存放zookeeper的id号
    server.1=mini1:2888:3888     #(心跳端口、选举端口)
    server.2=mini2:2888:3888
    server.3=mini3:2888:3888
    
  8. 创建文件夹,并在该文件下创建myid文件

    [root@hadoop05 zookeeper]# mkdir zkdata
    [root@hadoop05 zookeeper]# cd zkdata/
    [root@hadoop05 zkdata]# echo 1 > myid
    [root@hadoop05 zkdata]# cat myid 
    1
    
  9. 分发安装包到其他机器

    [root@hadoop05 local]# scp -r /usr/local/zookeeper root@hadoop06:/usr/local/
    [root@hadoop05 local]# scp -r /usr/local/zookeeper root@hadoop07:/usr/local/
    ...
    
  10. 修改其他机器的配置文件
    hadoop06上修改myid为:2
    hadoop07上修改myid为:3

  11. 启动(每台机器)

    [root@hadoop07 local]# zookeeper/bin/zkServer.sh start
    JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
  12. zookeeper集群启动脚本

    #! /bin/bash
    
    case $1 in
    "start"){
    	for i in hadoop05 hadoop06 hadoop07
    	do
    		ssh $i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start"
    	done
    };;
    "stop"){
    	for i in hadoop05 hadoop06 hadoop07
    	do
    		ssh $i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh stop"
    	done
    };;
    "status"){
    	for i in hadoop05 hadoop06 hadoop07
    	do
    		ssh $i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh status"
    	done
    };;
    esac
    
  13. 配置文件zoo.cfg参数说明

    参数参数
    tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。
    initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。
    syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。
    dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里。
    clientPortA是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。
    server.A=B:C:DA是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值