`

centOS 6.6下安装zookeeper

阅读更多

 

第一步:主机名称到IP地址映射配置(非必须的)

1、修改主机名

[root@localhost home]# vim  /etc/sysconfig/network

打开配置文件,将里面的HOSTNAME设置为zkserver,即将此云主机的主机名修改为zkserver

NETWORKING=yes

HOSTNAME=zkserver

2 、主机名与ip的映射

[root@localhost home]# vim /etc/hosts

打开配置文件,添加ip与主机名,如下:

172.17.123.134   node1

172.17.123.135   zkserver

172.17.123.136   node2

   说明:ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader。因此,各个结点之间要能够保证互相连接,必须配置上述映射。ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。

 

第二步:下载ZooKeeper,并创建目录

从下面网址下载zookeeper服务端安装文件

[root@localhost home]# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

创建目录

[root@localhost local]# mkdir zookeeper

[root@localhost zookeeper]# mkdir serverdata

[root@localhost serverdata]# mkdir data

[root@localhost serverdata]# mkdir logs

以上data和logs目录可以自定义,到时再zoo.cfg配置文件中直接修改相关路径即可

 

将zookeeper-3.4.8.tar.gz 解压到 zookeeper 目录中

第三步:修改ZooKeeper配置文件

 [root@localhost serverdata]# cd ../zookeeper-3.4.8/conf

[root@localhost conf]# cp zoo_sample.cfg ./zoo.cfg

编辑zoo.cfg文件,如果不需要集群,将其中data目录需改成你真实输出目录

 

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/serverdata/data

clientPort=2181

如果需要集群,zoo.cfg的内容如下:(其中data目录和server地址需改成你真实部署机器的信息)

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/serverdata/data

clientPort=2181

server.1=172.17.123.134:2555:3555

 

server.2=172.17.123.135:2555:3555

server.3=172.17.123.136:2555:3555

或者将以上的ip 换成我们第一步中的hostname 的名称也行;另外我添加了一行

dataLogDir=/usr/local/zookeeper/serverdata/logs

 

       如果是集群,则上面已经在一台机器zkserver上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下,如下

[root@zkserver]# scp  -r  /usr/local/zookeeper/  root@node1:/usr/local/

[root@zkserver]# scp  -r  /usr/local/zookeeper/  root@node2:/usr/local/

说明:/usr/local/zookeeper/表示zkserver上需要拷贝的文件,/usr/local/表示zkserver上存放文件的地方;如果是单机,此时不需要拷贝文件;

 

 第四步:设置myid

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:

[root@node1]#  echo "1" > /usr/local/zookeeper/serverdata/data/myid 

[root@zkserver]#  echo "2" > /usr/local/zookeeper/serverdata/data/myid 

[root@node4]#  echo "3" > /usr/local/zookeeper/serverdata/data/myid

 

 第五步:启动(集群)、停止(集群)

单机启动如下:

[root@localhost zookeeper-3.4.8]# ./bin/zkServer.sh start

[root@localhost zookeeper-3.4.8]# ./bin/zkServer.sh stop

如果是多台服务器的集群,则也只需每个服务器启动后自动执行集群了。

 

 以下配置开机启动:

 1、用cd 命令切换到/etc/rc.d/init.d/目录下,接着用touch zookeeper创建一个文件 

  然后为这个文件添加可执行权限

 chmod +x zookeeper

接着用vim zookeeper来编辑这个文件

接着在zookeeper里面输入如下内容

#!/bin/bash

#chkconfig:2345 20 90

#description:zookeeper

#processname:zookeeper

case $1 in

        start) su root /usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh start;;

        stop) su root /usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh stop;;

        status) su root /usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh status;;

        restart) su root /usr/local/zookeeper/zookeeper-3.4.8/bin/zkServer.sh restart;;

        *)  echo "require start|stop|status|restart"  ;;

esac

 保存退出,这个时候我们就可以用service zookeeper start/stop来启动停止zookeeper服务了

 说明:

zookeeper脚步中一定需要有至少两行以上的注释,其中一行是

chkconfig: 2345 20 90

       其中,2345表示系统运行级别是234或者5时都启动此服务,20是启动的优先级,90是关闭的优先级,值越小越优先。如果启动优先级配置的数太小(如0)时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。

 

 最后,使用chkconfig --add zookeeper命令吧zookeeper添加到开机启动里面

 添加完成之后接这个使用chkconfig --list 来看看我们添加的zookeeper是否在里面

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics