文档章节

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

 惜0623
发布于 2017/05/10 10:31
字数 1208
阅读 12
收藏 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

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

搭建分布式架构7--Zookeeper注册中心安装

粉丝 1
博文 44
码字总数 73777
作品 0
惠州
私信 提问
加载中
请先登录后再评论。
记一次失败的Perl + Nginx + FastCGI 配置过程

这两天心血来潮,不知道为什么和 Perl + Nginx + FastCGI 配置 耗上了。但是失败了,记录如下: 1)安装Nginx 1.4.3 ,我的是WINDOWS 7 系统,修改配置文件如下: location ~ .(pl|cgi|perl)?...

通吃岛-低手哥
2013/10/27
1.8K
7
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.9K
1
集群存储系统--YFS

YFS集群存储系统由多个元数据服务器(MDS)、多个块数据服务器(CDS)和多个客户端(client)互联组成集群; 数据被分成64M固定大小的数据块(Chunk),每个数据块在CDS本地以常规文件的形式...

匿名
2013/02/19
1.8K
0
基于 ThinkPHP 的内容管理系统--歪酷CMS

歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,实现多管理员管理,程序辅助功能也基本实现了常见的文...

鲁大在线
2013/02/19
7.1K
2

没有更多内容

加载失败,请刷新页面

加载更多

旋转子段 (思维stl)

题目: 大概意思就是给你一个序列,你可以选择一段区间使它左右翻折一遍,然后呢,从1到n找一遍,看a[i]==i的数最多是多少。 其实刚才我已经把暴力思路说出来了,枚举每一个区间长度,枚举每...

osc_npw5uz1o
8分钟前
0
0
回忆录

前言? 果然退役的蒟蒻不仅没有留下有价值的学习资料,甚至连能看的颓废资料都没有。 其实这一年时间里一直想写一篇像样的回忆录。 想把高三也写进去?现在高三结束了。没时间写?现在有了。...

osc_z9ptnny9
10分钟前
0
0
mysql启动失败,unit not found

1 mysql启动 Failed to start mysqld.service: Unit not found. 2 查询/etc/init.d/下是否存在mysqld ll /etc/init.d/ | grep mysqld 发现该目录下并没有mysqld的文件,若存在,请备份一下 ...

osc_um3gbrdm
11分钟前
5
0
域名解析到底应该肿么破——详解域名解析类型

原文地址:https://www.wjcms.net/archives/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E5%88%B0%E5%BA%95%E5%BA%94%E8%AF%A5%E8%82%BF%E4%B9%88%E7%A0%B4%E8%AF%A6%E8%A7%A3%E5%9F%9F%E5%90%8D%......

神兵小将
11分钟前
0
0
Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

osc_3r4js8qy
13分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部