zookeeper集群

ZooKeeper集群安装后无法启动ZooKeeper JMX enabled by default

老子叫甜甜 提交于 2019-12-05 05:22:55
ZooKeeper做三节点集群,启动后报错如下: [root@centos conf]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/src/zookeeper-3.4.10/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@centos conf]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/src/zookeeper-3.4.10/bin/../conf/zoo.cfg Error contacting service. It is probably not running. 解决方案: 1.首先关闭防火墙,三台机器之间无法正常通信。 2.创建数据目录,zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=ip:2888:3888中的1.只要在myid头部写入1即可.同理其它两台机器的id对应上。 比如第一台机器cfg文件: 配置相应的myid为:1 来源: CSDN 作者: 少侠灬 链接: https://blog

zookeeper集群启动报错ZooKeeper JMX enabled by default...解决方案

穿精又带淫゛_ 提交于 2019-12-05 05:22:40
1. 上传zookeeper到linux服务器,并解压缩/opt/install中 2. zookeeper_home/conf zoo_sample.cfg 改名 成 zoo.cfg cp zoo_sample.cfg zoo.cfg 3. 修改zoo.cfg # zookeeper_home 创建 data目录 dataDir=/opt/install/zookeeper-3.4.5/data server.0=hadoop.baizhiedu.com:2888:3888 server.1=hadoop1.baizhiedu.com:2888:3888 server.2=hadoop2.baizhiedu.com:2888:3888 4. data目录下面创建一个myid文件 #第一台服务器 myid 0 #第二台服务器 myid 1 #第三台服务器 myid 2 5. scp 把zookeepr 拷贝到 集群的每一个节点 scp -r 6. 对应服务器 修改 myid 文件的值 7. 启动zookeeper集群 bin/zkServer.sh start bin/zkServer.sh status 查看集群状态 #client访问 zk leader bin/zkCli.sh 启动出问题,你首先看 server.0=hadoop.baizhiedu.com:2888

Zookeeper启动显示成功,zkServer.sh status报错

流过昼夜 提交于 2019-12-05 05:21:13
zookeeper-3.4.9 按照指导配置完成后,再zookeeper/bin下执行 ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/hadoop/bigdata/zk/bin/../conf/zoo.cfg Starting zookeeper ... STARTED 再执行 ./zkServer.sh status hadoop@master:~/bigdata/zk/bin$ ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/hadoop/bigdata/zk/bin/../conf/zoo.cfg Error contacting service. It is probably not running. 再执行 jps, 根本就没有zookeeper相关进程在运行。也就是说, start 那步显示的STARTED 并不代表真正启动成功。 hadoop@master:~/bigdata/zk/bin$ jps 4128 NameNode 5745 ResourceManager 22914 Jps 19299 SqoopJettyServer 1670 RunJar 22074

启动zookeeper时异常,查看zookeeper.out文件查看日志提示“java.net.NoRouteToHostException: 没有到主机的路由”

非 Y 不嫁゛ 提交于 2019-12-05 05:19:28
网上很多说是没有关闭防火墙,关闭防火墙后,依然是异常,可通过查看防火墙命令service iptables status(查看防火墙状态),我反复检查确认防火墙已经关闭,所以我的问题依然没有解决。 之后我把三台zookeeper主机的clientPort端口号改成别的,具体是进入zookeeper的conf文件夹,对配置文件zoo.cfg中的clientPort进行配置。 之后重启zookeeper,问题解决。 警示:导致这样的问题 1:你的zk集群不是正常的关闭,比如 强制Linux关闭 2:直接执行kill 命令zk的进程,导致zk不是正常关闭 3:出现这种状况,直接修改 clientPort 端口号,然后再启动,再关闭,把 clientPort 修改为2181. 然后就OK了,希望对大家都有帮助。 来源: CSDN 作者: 「已注销」 链接: https://blog.csdn.net/zcanxue/article/details/79784171

zookeeper查看日志

血红的双手。 提交于 2019-12-05 05:13:25
转载: https://www.cnblogs.com/jxwch/p/6526271.html zookeeper服务器会产生三类日志:事务日志、快照日志和log4j日志。   在zookeeper默认配置文件zoo.cfg(可以修改文件名)中有一个配置项dataDir,该配置项用于配置zookeeper快照日志和事务日志的存储地址。在官方提供的默认参考配置文件zoo_sample.cfg中,只有dataDir配置项。其实在实际应用中,还可以为事务日志专门配置存储地址,配置项名称为dataLogDir,在zoo_sample.cfg中并未体现出来。在没有dataLogDir配置项的时候,zookeeper默认将事务日志文件和快照日志文件都存储在dataDir对应的目录下。建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作时,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能,而且,可以允许将两类日志存在在不同的存储介质上,减少磁盘压力。log4j用于记录zookeeper集群服务器运行日志,该日志的配置地址在conf/目录下的log4j.properties文件中,该文件中有一个配置项为“zookeeper.log.dir=.”,表示log4j日志文件在与执行程序(zkServer.sh

Zookeeper开发常见问题

﹥>﹥吖頭↗ 提交于 2019-12-05 05:11:46
背景与目的 Zookeeper开发过程中遇到一些常见问题,为了后续开发不犯同样的错误,总结一下此类问题,并进行分析和解决。 适合人员 主要适合zookeeper开发、测试及运维相关人员。 问题与解决 一、 关于zookeeper_init函数的使用 问题描述: 开发人员在调用zookeeper_init函数时,若返回一个非空句柄zhandle_t *zh,则认为初始化成功,这样可能会导致后续操作失败。 问题分析: zhandle_t *zookeeper_init(const char *host, watcher_fn fn, int recv_timeout,const clientid_t *clientid, void *context, int flags) 函 数 返回一个zookeeper客户端与服务器通信的句柄,通常我们仅仅根据返回句柄情况来判断zookeeper 客户端与zookeeper服务器是否 建立连接。如果句柄为空则认为是失败,非空则成功。其实不然,zookeeper_init创建与ZooKeeper服务端通信的句柄以及对应于此句柄的会话,而会话的创建是一个异步的过程,仅当会话建立成功,zookeeper_init才返回一个可用句柄。 问题解决: 如何正确判断zookeepr_init初始化成功,可通过以下三种方式 1、判断句柄的state是否为ZOO

ZooKeeper常见问题整理

ぃ、小莉子 提交于 2019-12-05 05:05:51
ZK选举过程 当leader崩溃或者leader失去大多数的follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的leader,让所有的Server都恢复到一个正确的状态。Zk的选举算法使用ZAB协议: 选举线程由当前Server发起选举的线程担任,其主要功能是对投票结果进行统计,并选出推荐的Server; 选举线程首先向所有Server发起一次询问(包括自己); 选举线程收到回复后,验证是否是自己发起的询问(验证zxid是否一致),然后获取对方的id(myid),并存储到当前询问对象列表中,最后获取对方提议的leader相关信息(id,zxid),并将这些信息存储到当次选举的投票记录表中; 收到所有Server回复以后,就计算出zxid最大的那个Server,并将这个Server相关信息设置成下一次要投票的Server; 线程将当前zxid最大的Server设置为当前Server要推荐的Leader,如果此时获胜的Server获得n/2 + 1的Server票数, 设置当前推荐的leader为获胜的Server,将根据获胜的Server相关信息设置自己的状态,否则,继续这个过程,直到leader被选举出来。 通过流程分析我们可以得出:要使Leader获得多数Server的支持,则Server总数最好是奇数2n+1,且存活的Server的数目不得少于n+1

zookeeper安装和配置详解

*爱你&永不变心* 提交于 2019-12-05 05:05:20
摘自:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/#icomments,更多内容参考原文 更多zookeeper学习内容见: http://agapple.iteye.com/blog/1111377 安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/ 来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机模式 单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/zookeeper-3.2.2 下,Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh ,在 3.2.2 这个版本 Zookeeper 没有提供 windows 下的启动脚本,所以要想在 windows 下启动 Zookeeper 要自己手工写一个,如清单 1 所示: 清单 1. Windows 下 Zookeeper 启动脚本 setlocal set ZOOCFGDIR=%~dp0%..\conf set ZOO_LOG_DIR=%~dp0%.. set

zookeeper(二)常见问题汇总

旧街凉风 提交于 2019-12-05 05:05:11
一、为什么zookeeper要部署基数台服务器? 二、zookeeper脑裂(Split-Brain)问题 2.1、什么是脑裂? 2.2、什么原因导致的? 2.2、zookeeper是如何解决的? 一、为什么zookeeper要部署基数台服务器? **所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的服务数必须大于n/2,zookeeper才可以继续使用,无论奇偶数都可以选举leader。**5台机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。说为什么最好为奇数个,是在以最大容错服务器个数的条件下,会节省资源,比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务,所以从节约资源的角度看,没必要部署6(偶数)个zookeeper服务。 zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2->0;3->1

zookeeper集群无法正确启动

亡梦爱人 提交于 2019-12-05 05:04:58
今天网上认识一妹子让我帮着解决问题,人家很信任的把自己的服务器账号给我了,所以花了一个晚上帮着解决。 首先配置文件: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data clientPort=2181 server.0=47.94.204.115:2888:3888 server.1=47.94.192.253:2888:3888 server.2=47.94.199.37:2888:3888 然后是:启动日志大面积异常: 2017-07-05 23:40:14,814 [myid:0] - WARN [WorkerSender[myid=0]:QuorumCnxManager@588] - Cannot open channel to 1 at election address /47.94.192.253:3888 java.net.ConnectException: 拒绝连接 (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350