CentOS 7下 linux搭建Zookeeper伪集群

Zookeeper简介


Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等

Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。


环境搭建:

环境准备:

centos7    

jdk1.8(zookeeper要求Java运行环境,并且需要jdk版本1.6以上。linux查看jdk版本:java -version


zookeeper安装

1.zookeeper安装包上传,安装:

 1.1打开虚拟机,进入终端,输入 ifconfig 查看虚拟机ip地址

    CentOS 7下 linux搭建Zookeeper伪集群_第1张图片

     1.2通过SSH链接虚拟机

    CentOS 7下 linux搭建Zookeeper伪集群_第2张图片

    点击connect链接输入密码

    1.3上传安装包

    链接成功以后,点击黄色文件夹,打开文档界面

    CentOS 7下 linux搭建Zookeeper伪集群_第3张图片    

    文档界面进入usr目录下,点击New Foider选项,新建文件目录名为zookeeper-3.4.6,将安装包上传到该目录

    zookeeper-3.4.6下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/

    CentOS 7下 linux搭建Zookeeper伪集群_第4张图片


    CentOS 7下 linux搭建Zookeeper伪集群_第5张图片

    1.4解压安装包

    进入到新建的zookeeper-3.4.6安装目录 

 cd usr/zookeeper-3.4.6/

     通过 tar -xzcf zookeeper-3.4.6.tar.gz 命令来进行解压安装包,输入 ll 命令查看是否解压完成

    

2、在/usr/local创建solrcloud目录,把解压后的文件复制3份到此目录下。分别命名为zookeeper1、zookeeper2、zookeeper3

mkdir /usr/local/solrcloud

mkdir创建文件夹

mv zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1

mv 原文件名 目标文件名 :移动文件的同时,将其改名为“目标文件”名

cd /usr/local/solrcloud

进入到solrcloud目录下

cp -r zookeeper1/ zookeeper2

cp -r  复制:zookeeper1复制一个文件名为zookeeper2的文件

cp -r zookeeper1/ zookeeper3
cp -r  复制:zookeeper1复制一个文件名为zookeeper3的文件



3、配置zookeeper: (solrcloud目录下)

在每个zookeeper文件夹下创建data目录,并在data目录下创建一个myid文件,文件内容为zookeeper编号1、2、3

zookeeper文件夹下创建data目录:
mkdir zookeeper1/data


data目录下创建myid文件:


echo 1 >> zookeeper1/data/myid

(注:配置完成以后最好查看一下,多执行一次命令就会添加一条,server id 如果和myid对应不上,zk会启动不起来)

4、把zookeeper1下conf目录的zoo_sample.cfg文件复制一份改名为zoo.cfg

    4.1 通过下面命令进入zookeeper1目录下的conf文件中

 cd usr/local/solrcloud/zookeeper1/conf

    CentOS 7下 linux搭建Zookeeper伪集群_第6张图片  

   

     4.2 将zoo_sample.cfg文件复制一份改名为zoo.cfg

cp zoo_sample.cfg zoo.cfg
     CentOS 7下 linux搭建Zookeeper伪集群_第7张图片


    4.3修改zoo.cfg文件:

vi zoo.cfg 

    进入编辑模式以后按键盘键“i”进行编辑 

    把dataDir=属性指定为刚创建的data文件夹

    clientPort=修改端口(伪分布式由于相同IP,必须更改,集群不需要)

    在clientPort下添加以下信息

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883  

添加完成以后,按ESC键,输入:wq!  保存并退出 ,Enter回车键退出编辑  

CentOS 7下 linux搭建Zookeeper伪集群_第8张图片

2881和3881随便写,不冲突就行。投票端口和选举端口

zookeeper2和zookeeper3重复以上步骤:(重复4.1, 4.2, 4.3步骤)

CentOS 7下 linux搭建Zookeeper伪集群_第9张图片

CentOS 7下 linux搭建Zookeeper伪集群_第10张图片


5,启动zookeeper集群

    5.1进入zookeeper目录bin目录下通过 ./zkServer.sh status 启动zookeeper

 cd usr/local/solrcloud/zookeeper1/bin/
./zkServer.sh start

    CentOS 7下 linux搭建Zookeeper伪集群_第11张图片

    CentOS 7下 linux搭建Zookeeper伪集群_第12张图片

    CentOS 7下 linux搭建Zookeeper伪集群_第13张图片


    5.2查看集群状态:通过./zkServer.sh status来进行查看(集群一定要全部启动以后再查看状态,查看是否全部启动正常

    

./zkServer.sh status

    

    

    

    查看状态为:一主两从:leader为主机,follower为从机,说明配置完成。

    


    5.3关闭zookeeper:

    进入bin目录下,通过./zkServer.sh stop来关闭zookeeper


./zkServer.sh stop

CentOS 7下 linux搭建Zookeeper伪集群_第14张图片





后来启动zookeeper的时候,进入每个目录去启动太麻烦了,就写了一个批量脚本

vi start-zookeeper-all.sh


    添加路径,保存并退出

/usr/local/solrcloud/zookeeper1/bin/zkServer.sh start
/usr/local/solrcloud/zookeeper2/bin/zkServer.sh start
/usr/local/solrcloud/zookeeper3/bin/zkServer.sh start

    这时候还没有运行权限,需要添加权限:

chmod u+x start-zookeeper-all.sh 

    CentOS 7下 linux搭建Zookeeper伪集群_第15张图片

    添加完成权限以后,通过批量文件就可以启动全部zookeeper了

./start-zookeeper-all.sh 
CentOS 7下 linux搭建Zookeeper伪集群_第16张图片

    




注意:

1、如果查看状态报错:首先看看/bin/zookeeper.out 日志文件,看看报的什么错误; 


2. 如果遇到了myid file is missing错误:

    2.1 先去看看conf/zoo.cfg配置文件中的dataDir路径是否是你想要配置的路径,是否和异常中的一样; 

    CentOS 7下 linux搭建Zookeeper伪集群_第17张图片

   2.2 如果一样,再去查看有没有myid这个文件,如果没有的话,就在dataDir指定的路径下创建myid,然后 写 入id(需要和server.X一致)的值(1-255),只需要一个数字剩下的啥也不用写;如果路径不一样,myid文件需要和dataDir指定的目录一致,如果有myid文件,查看myid文件中的值是否一致,是否只有一个数字

CentOS 7下 linux搭建Zookeeper伪集群_第18张图片 

2.3 如果都配置正确有可能是因为防火墙导致的,所以查看一下防火墙,或者关闭它试试; 

    关闭命令:

   
systemctl status firewalld.service  #检查防火墙状态

systemctl stop firewalld.service  #关闭防火墙

systemctl disable firewalld.service  #禁止开机启动防火墙

        关闭SELINUX,通过如下命令:

  vim /etc/selinux/config
     CentOS 7下 linux搭建Zookeeper伪集群_第19张图片

     #SELINUX=enforcing  #注释掉

    #SELINUXTYPE=targeted  #注释掉

    SELINUX=disabled  #增加



2、如果一直java.net.ConnectException: 拒绝连接:

    进入到etc目录下,编辑hosts文件,注释掉 127.0.0.1 的配置,然后再新重启zookeeper试一下

    CentOS 7下 linux搭建Zookeeper伪集群_第20张图片

你可能感兴趣的:(Zookeeper,Linux,CentOS,7)