Zookeeper分布式安装
zookeeper概念
是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
zookeeper特性
一致性: 数据一致性, 数据按照顺序分批入库
原子性: 事务要么成功要么失败
单一视图: 客户端连接集群中的任意zk节点, 数据都是一致的
可靠性:每次对zk的操作状态都会保存在服务端
实时性: 客户端可以读取到zk服务端的最新数据
准备
hadoop集群相关配置
192.168.1.111 linux01
192.168.1.112 linux02
192.168.1.113 linux03
apache-zookeeper-3.5.7-bin.tar.gz其他相关版本
安装
1,将压缩包传入/opt
目录下(可自拟)
2,解压重命名删除包
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
mv apache-zookeeper-3.5.7-bin zookeeper
rm apache-zookeeper-3.5.7-bin.tar.gz
3,cd /opt/zookeeper/conf
进入zookeeper的配置目录
<1,该目录下有示例配置文件zoo_sample.cfg,将其拷贝为zoo.cfg
cp zoo_sample.cfg zoo.cfg
<2,vim zoo.cfg
添加如下内容,(对应自身)
server.1=linux01:2888:3888
server.2=linux02:2888:3888
server.3=linux03:2888:3888
2888
:标识这个服务器与集群中的leader服务器交换信息的端口 。
3888
:leader挂掉时专门用来进行选举leader所用的端口。
tickTime
:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,每个tickTime 时间就会发送一个心跳。
dataDir
:Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort
:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit
:Leader和Follower初始化连接时最长能忍受多少个心跳时间间隔数。
syncLimit
:Leader 与 Follower之间发送消息,最长不能超过多少个 tickTime 的时间长度。
maxClientCnxns
:限制客户端连接数量。
4,在ZooKeeper
的/tmp
目录(保存目录自拟与上述一致)下创建数据存储目录和myid
文件
cd /tmp
mkdir -p zookeeper/zookeeper_data
5,vim myid
在myid
文件中写入zoo.cfg
文件主机名所对应的的server
号(1)。
6,将zookeeper
和数据存储目录
的文件远程拷贝给从节点
scp -r /opt/zookeeper linux02:/opt/
scp -r /opt/zookeeper linux03:/opt/
scp -r /tmp/zookeeper linux02:/tmp/
scp -r /tmp/zookeeper linux03:/tmp/
7,然后在从节点上使用vim
编辑储存目录下的myid
文件,将内容更改为各自主机对应的server号。
8,三台同步vim /etc/profile
配置相关环境
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin
source /etc/profile
9,三台同步zkServer.sh start
jps
有QuorumPeerMain
即可
`1. 启动ZK服务:` zkServer.sh start
`2. 查看ZK服务状态:` zkServer.sh status
`3. 停止ZK服务:` zkServer.sh stop
`4. 重启ZK服务:` zkServer.sh restart
至此安装配置完成