文档章节

搭建JEESZ分布式架构6--ZooKeeper 集群的安装

 猫改不了吃鱼
发布于 2017/05/12 17:00
字数 1227
阅读 4
收藏 0

 ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization).命名服务(Naming Service).集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。(我是网上抄写的,方便大家学习,请勿吐槽!!)

Dubbo 建议使用 Zookeeper 作为服务的注册中心。 

Zookeeper 集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。

正是基于这个 特性,要将 zookeeper集群的节点数量要为奇数(2n+1:如 3、5、7 个节点)

声明:以上都是官网的原话,此教程主要是供大家学习,请各位不要吐槽

根据您自己的业务来决定服务器配置,我这边定义了三台服务器,如下:

服务器1:xxx.xxx.xxx.xx1  端口:2181、2881、3881 

服务器2:xxx.xxx.xxx.xx2  端口:2182、2882、3882 

服务器3:xxx.xxx.xxx.xx3  端口:2183、2883、3883

1、 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射:

[root@cloud   ~]# vi /etc/hosts

# zookeeper servers

xxx.xxx.xxx.xx1 jeesz-zk-01

xxx.xxx.xxx.xx2 jeesz-zk-02

xxx.xxx.xxx.xx3 jeesz-zk-03

2、 下载或上传 zookeeper-3.4.6.tar.gz 到/home/jeesz/zookeeper 目录:

[root@cloud   ~]# cd/home/jeesz/zookeeper

$ wgethttp://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

3、 由于我已经下载并上传了文件,故这边直接记录详细的安装过程,解压 zookeeper 安装包,并按节点号对 zookeeper 目录重命名:

[root@cloud   zookeeper]# tar -zxvfzookeeper-3.4.6.tar.gz

在xxx.xxx.xxx.xx1服务器:

[root@cloud   zookeeper]# mvzookeeper-3.4.6 node-01

在xxx.xxx.xxx.xx2服务器:

[root@cloud   zookeeper]# mvzookeeper-3.4.6 node-02

在xxx.xxx.xxx.xx3服务器:

[root@cloud  zookeeper]# mvzookeeper-3.4.6 node-03

4、 分别在 zookeeper 节点目录下创建以下目录:

[root@cloud  ~]# /home/jeesz/zookeeper/node-0X (X 代表节点号 1、2、3)

[root@cloud  node-0X]# mkdirdata

[root@cloud  node-0X] # mkdirlogs

5、 将 zookeeper/node-0X/conf 目录下的 zoo_sample.cfg 文件拷贝一份,命名为 zoo.cfg:

[root@cloud  conf] cp zoo_sample.cfgzoo.cfg

6、 修改 zoo.cfg 配置文件:

[root@cloud conf] # vi zoo.cfg

zookeeper/node-01 的配置(/home/jeesz/zookeeper/node-01/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-01/data

dataLogDir=/home/jeesz/zookeeper/node-01/logs

clientPort=2181

server.1=jeesz-zk-01:2881:3881

server.2=jeesz-zk-02:2882:3882

server.3=jeesz-zk-03:2883:3883

 

zookeeper/node-02 的配置(/home/jeesz/zookeeper/node-02/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-02/data

dataLogDir=/home/jeesz/zookeeper/node-02/logs

clientPort=2182

server.1=jeesz-zk-01:2881:3881

server.2= jeesz -zk-02:2882:3882

server.3= jeesz -zk-03:2883:3883

zookeeper/node-03 的配置(/home/jeesz/zookeeper/node-03/conf/zoo.cfg)如下:

dataDir=/home/jeesz/zookeeper/node-03/data

dataLogDir=/home/jeesz/zookeeper/node-03/logs

clientPort=2183

server.1= jeesz-zk-01:2881:3881

server.2= jeesz-zk-02:2882:3882

server.3= jeesz-zk-03:2883:3883

7、 在dataDir=/home/jeesz/zookeeper/node-0X/data 下创建 myid 文件

编辑 myid 文件,并在对应的IP 的机器上输入对应的编号。如在 node-01 上,myid文件内容就是

1,node-02 上就是 2,node-03 上就是 3:

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-01/data/myid 

1

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-02/data/myid 

2

[root@cloud  ~]# vi/home/jeesz/zookeeper/node-03/data/myid 

3

8、 在防火墙中打开要用到的端口 218X、288X、388X

[root@cloud  ~]# vi/etc/sysconfig/iptables

如服务器 01 增加以下 3 行:

## zookeeper

-A INPUT -m state --state NEW -m tcp -p tcp--dport 2181 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 2881 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 3881 -j ACCEPT

重启防火墙:

[root@cloud  ~]# serviceiptables restart

查看防火墙端口状态:

[root@cloud  ~]# serviceiptables status

注意:centos7中使用方法不同,大家可以上网查询一下

9、 启动并测试 zookeeper(要用 jeesz 用户启动,不要用 root):

(1) 到/home/jeesz/zookeeper/node-0X/bin 目录中执行:

[root@cloud  ~]# /home/jeesz/zookeeper/node-01/bin/zkServer.shstart

[root@cloud  ~]# /home/jeesz/zookeeper/node-02/bin/zkServer.shstart

[root@cloud  ~]# /home/jeesz/zookeeper/node-03/bin/zkServer.shstart

(2) 输入 jps 命令查看进程: 

[root@cloud  ~]# jps

1456 QuorumPeerMain

其中,QuorumPeerMain 是 zookeeper 进程,说明启动正常

(3) 查看状态:

[root@cloud  ~]# /home/jeesz/zookeeper/node-01/bin/zkServer.sh status

(4) 查看 zookeeper 服务输出信息:

由于服务信息输出文件在/home/jeesz/zookeeper/node-0X/bin/zookeeper.out

[root@cloud  ~]# tail-500f zookeeper.out

10、停止 zookeeper 进程:

[root@cloud  ~]# zkServer.shstop

11、配置 zookeeper 开机使用 jeesz 用户启动:

编辑 node-01、node-02、node-03 中的/etc/rc.local 文件,分别加入:

[root@cloud  ~]# vi/etc/rc.local

su - root -c'/home/jeesz/zookeeper/node-01/bin/zkServer.sh start'

su - root -c '/home/jeesz/zookeeper/node-02/bin/zkServer.shstart'

su - root -c'/home/jeesz/zookeeper/node-03/bin/zkServer.sh start'

 

想了解更多详细请点击源码地址获取mingli.com

有兴趣的朋友们可以前往球球哦~一起分享学习技术:2042849237

请大家持续关注搭建JEESZ分布式架构7--Zookeeper注册中心安装

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 40
码字总数 51358
作品 0
惠州
Kafka 单机和分布式环境搭建与案例使用

Kafka 单机和分布式环境搭建与案例使用 目录(?)[+] 一、单机环境搭建 官方参考文章: http://kafka.apache.org/quickstart 1、下载和解压安装包 这里下载了zookeeper和kafaka两个安装包,下载...

yucaifu1989
04/19
0
0
Zookeeper完全分布式集群的搭建

Zookeeper完全分布式集群的搭建 一、集群模式 1、单机模式 在zoo.cfg中只配置一个server.id就是单机模式了。 这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务...

星汉
04/27
0
0
ZooKeeper的伪分布式集群搭建以及真分布式集群搭建

zk集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh -server [ip]:[port] 命令检测集群是否配置成...

ZeroOne01
04/24
0
0
Solr初探(6)——SolrCloud

Solr集群,即是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高...

yuanlaijike
04/12
0
0
ZooKeeper伪分布式集群安装

获取ZooKeeper安装包 下载地址:http://apache.dataguru.cn/zookeeper 选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.6版本。 ZooKeeper伪分布式集群安装 伪分布式集群:在一台Ser...

蔡佳娃
2015/03/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
28分钟前
1
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
32分钟前
3
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
43分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
43分钟前
2
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部