Zookeeper部署完全分布式

发布 : 2016-02-26 分类 : 大数据 浏览 :

1.Zookeeper概念简介:

1
2
3
4
Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务
A、zookeeper是为别的分布式程序服务的
B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)
C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……

zookeeper在底层其实只提供了两个功能

  • 管理(存储,读取)用户程序提交的数据
  • 用户程序提供数据节点监听服务

1.2.Zookeeper常用应用场景:

1.2.1、服务器状态的动态感知

Markdown

1.2.2、配置文件管理

Markdown

1.2.3、分布式共享锁

Markdown

1.2.4、master选举

1
2
Zookeeper集群的角色:  Leader 和  follower  (Observer)
只要集群中有半数以上节点存活,集群就能提供服务

2.zookeeper集群机制

1
2
半数机制:集群中半数以上机器存活,集群可用。
zookeeper适合装在奇数台机器上!!!

3.Zookeeper搭建规划

1
192.168.230.11/node02   192.168.230.12/node03 	192.168.230.13/node04

4.上传Zookeeper压缩文件到Linux主机的指定目录下

5.解压Zookeeper压缩文件

1
[root@node02 software]# tar -zxf zookeeper-3.4.6.tar.gz -C /opt/modules

6.进入/opt/modules目录下将zookeeper-3.4.6目录重命名为zookeeper

1
[root@node02 modules]# mv zookeeper-3.4.6 zookeeper

7.进入zookeeper文件夹,创建data和logs创建目录并赋于写权限,用于指定zookeeper的数据存放目录和日志目录

1
2
3
[root@node02 ~]# cd /opt/modules/zookeeper
[root@node02 zookeeper]# mkdir data
[root@node02 zookeeper]# mkdir logs

8.复制zoo_sample.cfg文件

1
2
3
4
5
6
7
8
[root@node02 ~]# cd /opt/modules/zookeeper/conf
[root@node02 conf]# cp zoo_sample.cfg zoo.cfg
[root@node02 conf]# ll
total 16
-rw-rw-r-- 1 1000 1000 535 Feb 20 2014 configuration.xsl
-rw-rw-r-- 1 1000 1000 2161 Feb 20 2014 log4j.properties
-rw-r--r-- 1 root root 922 Mar 7 13:46 zoo.cfg
-rw-rw-r-- 1 1000 1000 922 Feb 20 2014 zoo_sample.cfg

9.编辑zoo.cfg文件

1
[root@node02 conf]# vi zoo.cfg

Markdown

1
2
dataDir=/opt/modules/zookeeper/data
dataLogDir=/opt/modules/zookeeper/logs

Markdown

1
2
3
server.1=192.168.230.11:2888:3888
server.2=192.168.230.12:2888:3888
server.3=192.168.230.13:2888:3888

Markdown

10.进入data文件夹 建立对应的myid文件

1
2
3
[root@node02 ~]# cd /opt/modules/zookeeper/data
[root@node02 data]# vi myid
1

11.拷贝zookeeper文件夹到其他机器node03(192.168.230.12)、node04(192.168.230.13)上

1
2
[root@node02 ~]# scp -r /opt/modules/zookeeper root@node03:/opt/modules/zookeeper/
[root@node02 ~]# scp -r /opt/modules/zookeeper root@node04:/opt/modules/zookeeper/

12.修改其他机器node03(192.168.230.12)、node04(192.168.230.13)上的myid文件

1
2
3
4
5
6
7
[root@node03 ~]# cd /opt/modules/zookeeper/data
[root@node03 data]# vi myid
2

[root@node04 ~]# cd /opt/modules/zookeeper/data
[root@node04 data]# vi myid
3

13.分别启动三台机器的zookeeper

1
2
3
4
[root@node02 data]# cd /opt/modules/zookeeper
[root@node02 zookeeper]# ./bin/zkServer.sh start
查看zookeeper的状态
[root@node02 zookeeper]# ./bin/zkServer.sh status

Markdown

1
2
3
4
[root@node03 data]# cd /opt/modules/zookeeper
[root@node03 zookeeper]# ./bin/zkServer.sh start
查看zookeeper的状态
[root@node03 zookeeper]# ./bin/zkServer.sh status

Markdown

1
2
3
4
[root@node04 data]# cd /opt/modules/zookeeper
[root@node04 zookeeper]# ./bin/zkServer.sh start
查看zookeeper的状态
[root@node04 zookeeper]# ./bin/zkServer.sh status

Markdown

14.开启zookeeper的端口

1
2
3
4
5
6
7
8
9
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT --开启tomcat 8080端口

/etc/rc.d/init.d/iptables save #将更改进行保存
/etc/init.d/iptables restart #重启防火墙以便改动生效

tail -100 xxx.log #监控日志

15.查看集群状态

15.1.jps(查看进程)

Markdown

15.2.zkServer.sh status(查看集群状态,主从信息)

本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/02/26/Zookeeper概念&完全分布式部署/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹