在CentOS 7下安装Zookeeper

1、安装及配置


首先,再安装前,需要安装并配置好JDK(选择Oracle Java8 SE)。

其次,需要下载Zookeeper安装包,比如本例:zookeeper-3.4.9.tar.gz(可从Apache网站上下载http://www.apache.org/dyn/closer.cgi/zookeeper/),建议选择相对稳定的版本,不要选择最新版。

然后需要对其进行解压,解压的目标目录可以自定义,比如本例为/usr/server等:

[root@ZookeeperA server]# tar –zxvf zookeeper-3.4.9.tar.gz

打开 /etc/profile文件,并在文件末尾加入如下路径信息:

export ZOOKEEPER_HOME=/usr/server/zookeeper-3.4.9

export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

然后使修改生效:

[root@ZookeeperA /]# source /etc/profile

最后,需要创建两个必备的目录(可以在任意路径下,本例在zookeeper的主目录下创建),一个用于装数据,另一个用于装日志,这两个目录必须创建,否则将会在使用过程中报错;

建议不要使用同一个目录,目录名建议采用data和log:

[root@ZookeeperA zookeeper-3.4.9]# mkdir data

[root@ZookeeperA zookeeper-3.4.9]# mkdir log

2、配置集群


2.1、修改主机名

需要事先将每一台服务器名称修改成指定的主机名:

[root@localhost /]# hostname

Localhost.localdomain

本例设置主机名分别为ZookeeperA、ZookeeperB和ZookeeperC,其中针对ZookeeperA的设置如下所示:

[root@localhost /]# hostnamectl --static set-hostname ZookeeperA

[root@localhost /]# hostname

ZookeeperA

2.2、配置主机


首先需要配置主机的访问列表,在/etc/hosts文件中,将集群中的所有主机及其IP地址进行配置及映射,如下所示:

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.70 ZookeeperA

192.168.1.71 ZookeeperB

192.168.1.72 ZookeeperC

其中黑色内容为配置的内容,分别配置了ZookeeperA、ZookeeperB和ZookeeperC三台服务器可以互访,需要分别在这三台机器的/etc/hosts文件添加此内容。

特别需要注意:


127.0.0.1一行一定不能做修改,若做了修改(比如讲本机名称localhost进行了映射),zookeeper启动后将会出现无法连接网络错误;

在分布式环境中,一定要忘记本机 (localhost/127.0.0.1) 的概念,完全用静态IP来设置和定义。

127.0.0.1  localhost ZookeeperA localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.70 ZookeeperA

192.168.1.71 ZookeeperB

192.168.1.72 ZookeeperC

2.3、配置文件


需要进入zookeeper的conf路径下,将已存在的一个模板文件(zoo_sample.cfg)复制成zookeeper的配置文件(zoo.cfg)

[root@ZookeeperA conf]# cp zoo_sample.cfg zoo.cfg

首先,要在zoo.cfg文件中修改数据路径以及增加log日志路径设置,如下所示:

数据路径,用于存放myid文件等

dataDir=/usr/server/zookeeper-3.4.9/data

日志文件路径,用于存放日志

dataLogDir=/usr/server/zookeeper-3.4.9/log

然后打开该文件并添加如下代码:

server.70=ZookeeperA:2888:3888

server.71=ZookeeperB:2888:3888

server.72=ZookeeperC:2888:3888

本例设定仅使用三台服务器作为zookeeper的集群,按照如下格式进行配置:

server.id=host:port:port

其中其中host名称和port可以自定义,参数的含义如下:

 例子中,ZookeeperA、ZookeeperB和ZookeeperC为三台服务器的主机名,service.70通常会配置成master主机,其他的配置成slave主机。

 其次,第一个port(2888,默认端口号,可以自定义)是“从服务器(follower)”连接到”主服务器(leader)“的端口号,第二个port(3888,默认端口号,可以自定义)是进行leadership选举的端口号

2.4、设置MYID


然后在zoo.cfg 文件中配置的dataDir参数的路径下(此路径可以任意修改,默认为”/tmp/zookeeper”),创建myid文件,并将与本机对应的service.n(本例为70~72)的n写入文件,通常service. 后面的的数字n可以取IP地址的最后一位,比较好识别。

[root@ZookeeperA data]# vi myid

若本机为ZookeeperA,IP设为192.168.1.70,则文件内容如下

70

然后将本机配置和安装内容全部复制到其他机器中:

[root@ZookeeperA data]# scp –r zookeeper-3.4.9/ KafkaB:/usr/server/zookeeper-3.4.9

[root@ZookeeperA data]# scp –r zookeeper-3.4.9/ KafkaC:/usr/server/zookeeper-3.4.9

再分别到ZookeeperB和ZookeeperC中修改dataDir参数指定的路径下的myid文件内容,将与本机对应的service.n(本例为70~72)的n写入文件,如本机为ZookeeperB,IP设为192.168.1.71,则文件内容如下

71

为ZookeeperC,IP设为192.168.1.72,则文件内容如下

72

也可以采用Linux中简便写法(文件中仅有一行):

[root@ZookeeperA data]# echo “72” > /usr/server/zookeeper-3.4.9/data/myid

2.5、配置防火墙


最后,打开防火墙端口:2888、3888、2181,具体开放的端口是那个,需要根据配置的服务器参数:server.id=host:port:port以及zoo.cfg中clientPort参数来确定:

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=2888/tcp

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=3888/tcp

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=2181/tcp

3、启动集群


配置完成后,需要分别在每一台服务器上执行启动,首先进入zookeeper安装目录下的bin目录下,执行zkServer启动即可(建议,在启动集群之前,将每台服务器重启动一次):

[root@ZookeeperA bin]# zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

然后再执行如下命令:

[root@ZookeeperA bin]# jps

2983 QuorumPeerMain

3128 Jps

当看你到此信息,其中包含QuorumPeerMain(Zookeeper的进程名)时,代表当前结点成功启动;若没有启动,可以通过如下命令,查看启动过程出现的问题:

[root@ZookeeperA bin]# zkServer.sh start-foreground

此命令将会列出启动时遇到的各种异常错误等信息。

可以在任意一台主机上执行如下命令,查看当前主机在集群中节点的状态:

[root@ZookeeperB bin]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

本例显示ZookeeperB机器处于zookeeper的follower模式。

[root@ZookeeperC bin]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: leader

本例显示ZookeeperC机器处于zookeeper的leader模式。

4、客户端访问


配置完成后,可以使用zookeeper自带的控制台客户端来查看安装是否成功。

[root@ZookeeperB bin]# ./zkCli.sh -server ZookeeperA:2181

Connecting to ZookeeperA:2181

2016-09-14 18:03:43,829 [myid:] - INFO  [main:Environment@100] – Client

Welcome to ZooKeeper!

[zk: ZookeeperA:2181(CONNECTED) 0]

至此,已经成功进入了客户端,并链接到了ZookeeperA服务器的2181端口。

通过如下命令可以查看节点:

[zk: ZookeeperA:21810(CONNECTED) 0] ls /

[zookeeper]

[zk: ZookeeperA:21810(CONNECTED) 1]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容