大数据之zookeeper集群配置
Posted A Scut Coder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据之zookeeper集群配置相关的知识,希望对你有一定的参考价值。
zookeeper应用场景
统一命名服务(Name Service)
配置管理(Configuration Management)
机器的配置列表、运行时的开关配置、数据库配置信息等,具有以下特点:数据量比较小
数据内容在运行时发生变化
集群中各节点共享信息,配置一致
集群管理(Group Membership)
Leader,实现集群容错功能,具有以下特点:希望知道集群中有多少机器在工作
对集群中每天运行状态进行数据收集
对集群中每个节点进行上下线操作
共享锁(Locks):分布式锁
队列管理
发布/订阅:分布式数据的发布与订阅
数据库切换:数据库配置
1 .配置
因为实验室的集群比较特殊,用户目录是整个集群都公用一块盘,不是每个盘有自己的一块,所以只能创建3个zookeeper文件夹,1~3。
将入到conf文件夹下面,cp zoo_sample.cfg zoo.cfg,配置如下:
1的data为zookeeper-1/data
2的data为zookeeper-2/data 以此类推
然后在各自的data下面创建myid,1的内容为1,即对应各自server.id的id
# 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.
dataDir=/software/home/linjiaqing/zookeeper_cluster/zookeeper-1/data
dataLogDir=/software/home/linjiaqing/zookeeper_cluster/zookeeper-1/logs
# the port at which the clients will connect
clientPort=5888
server.1=mu01:2887:3887
server.2=cu01:2887:3887
server.3=cu02:2887:3887
zoo.cfg配置文件详解
tickTime:基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。
dataDir:存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit:这个配置项是用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
A表示这个是第几号服务器
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader
server.A = B:C:D
2. 一键启动脚本
因为不可能每次都进到每台机下面去启动那么麻烦,所以写脚本一键启动,原理是ssh免配置,通过脚本ssh到每台机去执行
echo "start zkServer..."
num=1
for host in mu01 cu01 cu02
do
echo "start $host"
ssh $host "cd /software/home/linjiaqing/zookeeper_cluster/zookeeper-$num;bin/zkServer.sh start"
num=$(($num+1))
done
3 出现的问题
Error contacting service. It is probably not running
查看zookeeper.out里面的输出
2181端口被占用!
还有原来默认配置的3888端口占用
zkServer.sh stop #先停止zookeep
netstat -an | grep 2181 #查看端口是否占用,如果占用
clientPort = 5888 #随便找个没占用的端口号!
以上是关于大数据之zookeeper集群配置的主要内容,如果未能解决你的问题,请参考以下文章
大数据之Zookeeper:Zookeeper选举机制(面试重点)
大数据高可用集群环境安装与配置(05)——安装zookeeper集群