【Zookeeper】zookeeper的安装与调试

一、问题

1.1、环境
电脑环境:Windows 7;
JDK环境: Jdk1.8;
zookeeper版本:3.5.6

1.2、问题
使用zookeeper已经有一段时间了,那么如何安装和调试呢?

二、解答

2.1、操作步骤;
1.zookeeper官网地址:官网

image

2.zookeeper镜像压缩包下载地址:镜像下载地址

这里有一个坑,就是一定要下载带bin字样的安装包:
image

不然项目下载下来会有如下报错,因为这里有两个下载包,从目前的最新版本3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用。原因详见

image

3、在安装的zookeeper目录下的bin目录同级目录下新增data和log目录(文件夹);从来存放数据和日志;
image

4、复制zoo_sample.cfg文件,然后改名为zoo.cfg,然后修改zoo.cfg配置文件;加入你刚才新增的data目录和log目录地址;注意【正斜杠】和【反斜杠】;
image

5、为避免不必要的麻烦,我们使用管理员运行cmd;
image

然后再cd到你安装路径下面的bin目录下,运行zkServer.cmd;
image

运行没有报错,很好,然后我又开了一个cmd(管理员身份运行)运行监听脚本zkCli.cmd:
image

二、集群伪分布模式 例如我们要部署3台服务器:我们在data目录下分别新增d_1,d_2,d_3三个子目录,用来存放数据;
1、复制zoo.cfg3份,分别命名为zoo1.cfg,zoo2.cfg,zoo3.cfg;

①、zoo1.cfg配置文件:
image

②、zoo2.cfg配置文件:
image

③、zoo3.cfg配置文件:
image

2、修改zkServer.cmd三份,分别命名为zkServer1.cmd,zkServer2.cmd,zkServer31.cmd; 然后修改内容如下:

①、zkServer1.cmd内容

image

②、zkServer2.cmd内容

image

③、zkServer3.cmd内容
image

3、启动,用【管理员身份】运行cmd,然后cd到zookeeper目录下,分别运行zkServer1.cmd,zkServer2.cmd,zkServer3.cmd;但是这里报错了:
image

仔细看这里的报错日志:

2019-12-19 13:43:30,837 [myid:] - WARN [main:VerifyingFileFactory@59] - ..\conf\zoo1.cfg is relative. Prepend .\ to indicate that you're sure! 2019-12-19 13:43:30,842 [myid:] - INFO [main:QuorumPeerConfig@385] - clientPortAddress is 0.0.0.0/0.0.0.0:2181 2019-12-19 13:43:30,843 [myid:] - INFO [main:QuorumPeerConfig@389] - secureClientPort is not set 2019-12-19 13:43:30,864 [myid:] - ERROR [main:QuorumPeerMain@89] - Invalid config, exiting abnormally org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing ../conf/zoo1.cfg

他的意思是:
1)、安全客户端端口号没有设置;
2)、不存在的配置,退出异常,使用../conf/zoo1.cfg配置异常;

这里的思路有两个,一是如何配置安全端口号(secureClientPort);二是,排查zoo1.cfg配置文件; 我们通过查阅别的资料,发现secureClientPort is not set没有问题,其他人正常启动也会有这句日志,那我们先忽略第1点;然后看第2点;排查zoo1.cfg配置文件;我们使用的是zkServer1.cmd,看日志,zkServer1.cmd也找到了zoo1.cfg这个配置文件,然后很大可能就是zoo1.cfg的配置问题了;

①、我们先将clientPort的端口号改成2199,但是也报错了:
image

然后我们就排除端口号占用的问题;而且,如果是端口号冲突,应该是Address is alreadly in use;这样的报错才对;

②、我注释掉了server.2和server.3;然后再次启动,发现可以启动:
image

所以,这里是因为【伪分布式】配置IP地址导致的错误;然后这个报文下面又报了另外一个错误:
image

这个不管;回到刚才的问题,【伪分布式】端口号一样,为什么就启动不了呢? ③、我们把localhost改成了127.0.0.1,还是一样的错误:
image

日志报文:
image

这说明localhost和127.0.0.1是无差别读取的;排除这个原因;

④、后来去网上查了一下原因,说在zookeeper下,新增的data文件夹里,要自己手动新增一个myid文件(没有任何后缀),myid里的值唯一标识了一天zookeeper;因为我们配置了3台【伪分布式】zookeeper地址,并且在zookeeper目录下的data文件夹里新增了d_1,d_2,d_3三个文件夹,所以我们需要在这3个文件夹里都放myid文件,里面的值分别填写为1,2,3,用来区分不同的zookeeper; 但是执行的时候还是报错:

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" contenteditable="true" cid="n20" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(255, 255, 255); position: relative !important; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">java.io.IOException: No snapshot found, but there are log entries. Something is broken!</pre>

然后查找原因发现,我们做【伪分布式】集群的时候,data文件里建立了三个目录d_1,d_2,d_3;但是log用的还是老的,这个就是导致上面IOException的原因,专款专用,不同的zookeeper,需要用不同的data目录,用不同的log目录,不然3台zookeeper的日志会串掉的;所以将zoo1.cfg,zoo2.cfg,zoo3.cfg里的日志输出地址改成新的目录即可:
image
image
image

然后启动第1台服务器的时候包连接拒绝,这个也不要怕,因为是集群,必须3台服务器都起来才能通信,所以,我们用【管理员身份】启动3个cmd窗口,然后就不报错了; 全篇结束;

三、总结

欢迎关注我的 CSDN博客https://blog.csdn.net/River_Continent 微信公众号:幕桥社区

image

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容