centos系统的zookeeper集群环境搭建

分布式集群管理,ZooKeeper集群模式环境搭建步骤,以下测试均在CentOS 6.9系统上操作,利用虚拟机克隆出三个centos系统构建集群环境。为避免出现未知情况已关闭防火墙。

注意:Zookeeper的运行需要java环境,得安装JDK。ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致;


前奏:

JDK安装
tar -zxvf jdk-7u45-linux-x64.tar.gz -C apps/ 解压到根目录的apps文件夹
vi /etc/profile  修改环境变量
在文件最后添加
export JAVA_HOME=/apps/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile   重新加载环境变量
java  运行

           与时间服务器上的时间同步的方法:
          1.  安装ntpdate工具
          # yum -y install ntp ntpdate
          2.  设置系统时间与网络时间同步
          # ntpdate cn.pool.ntp.org
          3.  将系统时间写入硬件时间
          # hwclock --systohc


以下开始搭建:

  (1)通过FTP工具上传ZooKeeper安装包,我这里使用的是3.4.5版本:
  下载地址:http://pan.baidu.com/s/1qWyoFhU
  (2)随便选择其中一个系统,解压ZooKeeper安装包,并将解压后的文件夹名称改为zookeeper:
  #  tar -zvxf zookeeper-3.4.5.tar.gz -C /usr/local
  #  mv zookeeper-3.4.5 zookeeper (改名是为了直观、方便)


  (3)修改环境变量:vi /etc/profile
   最后增加一行:export ZOOKEEPER_HOME=/usr/local/zookeeper
   最后增加修改PATH:export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
   使配置生效:# source /etc/profile

  (4)进入zookeeper的conf目录下,修改文件名:#mv zoo_sample.cfg  zoo.cfg
  (5)编辑zoo.cfg:#vi zoo.cfg
  修改dataDir=/usr/local/zookeeper/data
  新增server.0=zeromini1:2888:3888
    server.1=zeromini2:2888:3888
    server.2=zeromini3:2888:3888
      (Tip:zeromini 2,3是自己三台的主机名,也可以非主机名但要与hosts匹配)
      之后需要写入hosts文件比如:
     #  vi /etc/hosts
      最后添加
            192.168.2.233 zeromini1
            192.168.2.159 zeromini2
            192.168.2.120 zeromini3
            使服务器可以找到对应的ip地址
      
  (6)创建data文件夹,并在data文件夹下创建myid文件:
  新建data文件夹:# mkdir /usr/local/zookeeper/data
  新建myid文件:# vi myid,并设置第一台server为0,即只写入一个0 保存。


    (7)复制zookeeper目录至其余两台服务器中:
    # scp -r /usr/local/zookeeper zeromini2:/usr/local/
   #  scp -r /usr/local/zookeeper zeromini3:/usr/local/

  (8)复制环境变量配置文件至其余两台服务器中:
  # scp /etc/profile zeromini2:/etc
        #  scp /etc/profile zeromini23:/etc
    (说明,在复制文件夹是应加 -r 命令,profile是配置文件而非文件夹所以不用加-r)
    在这两台服务器中分别执行source /etc/profile  使环境变量生效
    
    
  (9)在其余两台服务器中修改myid文件:写入1和2;
  (10)启动ZooKeeper,分别在三个节点中执行命令:# zkServer.sh start
        可看到以下信息:
        Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
        Starting zookeeper ... STARTED
        表示服务启动
        
        
     (11)检验ZooKeeper集群节点角色状态,分别在三个节点中执行命令:# zkServer.sh status

          可看到投票选master、follower结果。显示如下信息:

           

         (这台服务器则为领导者leader

         

            这台服务器显示follower则为跟随者)

         

         此时集群环境搭建完成。可先进行一致性测试。这里就不再进行测试了。

           1、jps(查看进程)

         

           2、zkServer.sh status(查看集群状态,主从信息)
            关闭服务:zkServer.sh stop或
               kill -9 1543  (1536为jps查看进程中QuorumPeerMain前面的数字)

        每台服务器在启动的时候都要输入密码,下面介绍通过写shell脚本让其他服务器全部启动,并建立免密登入,摆脱多次输入密码的麻烦。

      用zeromini ssh命令远程开启zeromini3的命令:               
       [root@zeromini ~]# ssh zeromini3 "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start"
      因此可以写成一个shell脚本,自动开启所有zkServer.sh,如下:

[root@zeromini1 ~]# vi startzk.sh                     这里脚本就放在用户目录下了,也可以放在其他地方,配置下环境变量
#!/sh
echo "start zkserver...."
for i in 1 2 3
do
ssh zeromini$i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start"
done
    结束,保存startzk.sh脚本。。
[root@zeromini1 ~]# chmod +x startzk.sh

搭建ssh免密登入:

[root@zeromini1 ~]# ssh-keygen

输入如图三个命令,只需输入一次密码,配置完成。下面执行startzk.sh脚本,启动zeromini2,zeromini3服务器:
[root@zeromini1 ~]# startzk.sh


zeromini1,zeromini2,zeromini3的zkServer.sh已执行启动



(ps:上图可能不是同一次启动zookeeper的截图)


   这样就可以一次性启动所有的服务器上的zookeeper了,而且不用再输入密码,爽歪歪!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值