设为首页 收藏本站
查看: 1112|回复: 0

[经验分享] zookeeper 3.4.2集群安装

[复制链接]

尚未签到

发表于 2017-4-19 10:10:23 | 显示全部楼层 |阅读模式
 
集群安装
1.安装JDK。下载地址:http://java.sun.com/javase/downloads/index.jsp 
   设置JAVA_HOME ,将$JAVA_HOME/bin 加到PATH变量里。
2.下载Zookeeper 地址:http://hadoop.apache.org/zookeeper/releases.html 解压到相应目录。
3.创建配置文件。conf/zoo.cfg 内容例如:
#tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。
 
tickTime=2000
 
#dataDir:Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
 
dataDir=/tmp/zookeeper/data
 
#dataLogDir:日志文件保存的位置
 
dataLogDir=/tmp/zookeeper/log
 
#clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
 
clientPort=2181
 
#initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。
#当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
 
initLimit=10 
 
#syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
 
syncLimit=5
 
#server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
#如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
 
server.1=192.168.211.1:2888:3888 
server.2=192.168.211.2:2888:3888 
server.3=192.168.211.3:2888:3888
 
#自动清理功能是3.4.0之后提供的功能。较低的版本需要手工运行清理工具。
#自动清理时保存在datadir里的数据快照数。最小值3
 
autopurge.snapRetainCount=3
 
#自动清理任务的间隔小时数
 
autopurge.purgeInterval=1
 


4.创建myid文件。
myid文件只包含一个单行文本,内容为机器的编号。server.A=B:C:D 其中的数字A进入到dataDir,echo A > myid 。
5.测试
全部配置完成后,进入各机器Zookeeperbin目录,执行./zkServer.sh start 
之后执行echo stat | nc localhost 2181 查看当前节点状态。
 


Observers配置
为提高zookeeper伸缩性而设计。Observers不参与投票的服务器,可以接受客户端的连接,将写请求转发给领导节点
 
设置 ZooKeeper 使用 Observers 非常简单,只需要在配置文件中有两处改动。
首先是每个 Observer 的配置文件中都要有这么一行:
peerType=observer
这行让服务器作为一个 Observer 来工作。之后,在每个服务器配置文件中,你必须在服务器定义行给每个 Observer 加入 :observer  。比如:
Server.4=192.168.211.4:2888:3888:observer
这让每个其他服务器知道 server.4 是一个 Observer,就不会让它进行投票了。
 
有关Obervers的说明详见gnawux的译文 http://wangxu.me/blog/p/320 
 
系统监控
使用命令监控
例如:
echo stat | nc ip port 
echo conf | nc ip port 
或者telnet ip port 输入 stat 、conf等。
常用指令如下:
conf :显示配置参数
cons :列出所有的连接
crst  :重置连接/session的统计信息
dump Lists the outstanding sessions and ephemeral nodes. Leader节点有效。
envi :输出环境变量
ruok 是否runok.
Srst:重置服务器统计信息。
Srvr:显示服务器信息。平均等待时间,运行的模式等。
Stat:显示服务状态。
wchs Lists brief information on watches for the server. 显示多少个连接多少个被watchpath等。
wchc Lists detailed information on watches for the server, by session 小心使用,可能影响性能。
wchp  Lists detailed information on watches for the server, by path 小心使用,可能影响性能。
mntr  输出集群健康监测相关的信息。
 
使用jmx监控
修改zkServer.sh, ZOOMAIN部分的内容修改类似如下:
 
ZOOMAIN="-Dcom.sun.management.jmxremote  -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY -Djava.rmi.server.hostname=10.10.249.197
-Dcom.sun.management.jmxremote.port=1911
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
 org.apache.zookeeper.server.quorum.QuorumPeerMain"
 
启动后,可在远程启动jconsole通过jmx连接后监控。
 
问题处理
 当文件损坏导致无法启动时,解决方法如下:
1.启动其它能正常启动的zookeeper,并用echo ruok| nc ip port 判断正常运行。
2.删除 datadir/version-2 and datalogdir/version-2/ 目录。
3.启动zookeeper
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366236-1-1.html 上篇帖子: 3)用zookeeper实现分布式锁 下篇帖子: zookeeper在集群管理中的应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表