Zookeeper简介及集群部署

一、Zookeeper简介

简介

ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。ZooKeeper框架最初是在“Yahoo!”上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。

Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务

  • 1、为别的分布式程序服务的(比如服务管理、心跳检查、配置信息管理)

  • 2、本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)

  • 3、提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……

  • 4、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:

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

官网:https://zookeeper.apache.org/

二、zookeeper伪分布式搭建

环境准备

伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java信息才可以进行zookeeper搭建,jdk安装>>传送门

安装步骤
  • 下载好zookeeper-3.4.9.tar.gz 下载地址
  • 然后解压tar -zxvf zookeeper-3.4.9.tar.gz
  • 进入zk中的conf目录下输入
1
2
3
cp zoo-sample.cfg zoo1.cfg  
cp zoo-sample.cfg zoo2.cfg
cp zoo-sample.cfg zoo3.cfg
  • 分别对zoo1、2、3文件进行编辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#不同zoo.cfg修改自己的目录 zoo1.cfg为d_1、zoo2.cfg为d_2、zoo3.cfg为d_3
dataDir=/apps/servers/data/d_1
dataLogDir=/apps/servers/logs/logs_1
# the port at which the clients will connect
#不同zoo.cfg修改自己的端口号 zoo1.cfg端口为2181、zoo2.cfg端口为2182、zoo3.cfg端口为2183
clientPort=2187
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=localhost:2187:2887
server.2=localhost:2188:2888
server.3=localhost:2189:2889
  • 修改之后分别创建data目录和日志目录,并写入myid
1
2
3
4
5
6
7
8
9
10
11
mkdir -p /apps/servers/data/d_1
mkdir -p /apps/servers/data/d_2
mkdir -p /apps/servers/data/d_3

mkdir -p /apps/servers/logs/logs_1
mkdir -p /apps/servers/logs/logs_1
mkdir -p /apps/servers/logs/logs_1

echo "1" > /apps/servers/data/d_1/myid
echo "2" >/apps/servers/data/d_2/myid
echo "3" >/apps/servers/data/d_3/myid
  • 进入bin目录下输入命令 分别进行启动
1
2
3
4
5
6
./zkServer.sh start ../conf/zoo1.cfg
./zkServer.sh start ../conf/zoo2.cfg
./zkServer.sh start ../conf/zoo3.cfg

停止
./zkServer.sh stop ../conf/zoo3.cfg
  • 通过命令检测是否成功:
1
2
3
4
5
6
7
8
./zkCli.sh -server localhost:2181,localhost:2182,localhost:2183

或者

./zkServer.sh status

或者查看jvm进程
jps

成功显示

image

image

image

  • 至此Zookeeper搭建结束,下面开始启动Zookeeper,分别启动:如果你不想切换到Zookeeper目录启动,可以配置环境变量:
1
2
3
4
5
6
7
vim /etc/profile (修改文件)

export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13
export PATH=${ZOOKEEPER_HOME}/bin:$PATH

重新编译文件:
source /etc/profile
-------------已经触及底线 感谢您的阅读-------------

本文标题:Zookeeper简介及集群部署

文章作者:趙小傑~~

发布时间:2019年06月27日 - 22:49:11

最后更新:2019年07月26日 - 23:32:12

原始链接:https://cnsyear.com/posts/71e1f0ba.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%