我是靠谱客的博主 沉静指甲油,最近开发中收集的这篇文章主要介绍zookeeper和kafka集群搭建-错误集合1. 出现 zookeeper server is not running2. 出现zookeeper找不到jdk问题3. docker搭建zookeeper集群网络不同6 关于修改了配置文件,重启zookeeper时会失败7. 关于kafka运行问题总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 出现 zookeeper server is not running

问题排查

解决方案

在zoo.cfg文件中加入下面配置

maxClientCnxns=60
standaloneEnabled=false
admin.enableServer=true

2. 出现zookeeper找不到jdk问题

Error: JAVA_HOME is not set and java could not be found in PATH.
首先这个问题是在本机上部署出现的,如果用docker部署的话,容器内是会自动创建java环境的
本机上需要自己配置java环境(个人建议,java环境手动装,不用apt-get装,便于查找java环境路径)

问题排查

zookeeper是在java环境中运行的,这里是没有指定jdk路径

解决方案

如图就行,如果不用这个脚本进行执行,记住一定要配置jdk路径
在zkEnv.sh文件中加上图中箭头指向的这一句,这个是本机jdk地址,这个要视情况而定
在这里插入图片描述

3. docker搭建zookeeper集群网络不同

问题排查

  1. 用docker 搭建zookeeper方便管理,这里遇到几个问题。通过network_mode: "host"时,这里创建不了容器

  2. 不指定network_mode: "host"时,能够创建容器,但是各个节点之间不能通信,出现can not open channel

  3. 关于其它的错误,比如zookeeper server not running等,其实就是配置文件问题,检查拼写是够出错

  4. 关于工具zkWeb,我自己创建镜像,用docker部署时,增加部署成功的zookeeper节点,出现连接失败,但是将zkWeb改用本机运行,就是可以的。从这里分析出,docker的网络是有问题的,这里直接影响了zookeeper集群节点通信。

解决方案

关于docker 部署网络不同问题,我这里没有很好的解决方案。然后我选了在本机上部署,这里是成功的。

建议不要用docker部署zookeeper集群,我部署没成功,主要是网络不通问题。本机搭建还是很容易的

4. 搭建kafka集群,就有一个节点启动不了

问题排查

遇到一个很奇怪的问题,我搭建好多了三个节点的zookeeper,在搭建kafka集群的时候,分属在三台服务器上,但是其中两个节点运行时没问题的,但就是有一个节点启动不了。

解决方案

目前我也正在排查
这个问题其实是我解决了下面jdk的问题时无意间解决的。
kafka要指定jdk路径,我下面配置jdk的时候,路径配置错误了。我也不知道为啥JAVA_HOME的路径和系统真正使用的jdk路径竟然不一样。
问题是我系统中有连个jdk,但是系统没有用我指定路径的,就是在/etc/profile中制定路径的那个jdk,竟然用了我没有感知到的某个路径下的jdk.
如果遇到这个问题,可以使用 echo $JAVA_HOME查看一下真正的路径是哪个,如果不是自己配置的,就删除这个路径下的jdk,配置成自己的。

5. 在配置java环境时,更好jdk,然后所有命令都找不到了路径

问题排查

这个问题比较特殊,不算在zookeeper之内,既然在这里遇到了,那就在这里记录一下
问题就是

the command could not be loated because '/usr/bin' is not included

问题产生的原因就是,我改动环境变量,环境变量弄错。

解决方案

1. 编辑该文件
/usr/bin/nano ~/.bashrc

2. 在文件末尾加入下面代码
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"

3. 重启服务器,然后就可以了

解决方案2

上面的方法治标不治本,当刷新/etc/profile的时候,还是会出现这个问题

我的问题是:在我配置jdk的时候,退出刷新jdk是出现的。

我尝试/etc/profile中的jdk配置删除,然后重新启动,就可以了。

通过echo $JAVA_HOME发现路径竟然不是我配置的,相当于我配置的和这个冲突了,那找到这个路径的文件,将jdk删除,然后配置自己的jdk,在更新/etc/profile中JAVA_HOME的路径就可以了

6 关于修改了配置文件,重启zookeeper时会失败

问题描述

服务可能没有启动起来

问题排查

如果之前是能够启动的,知识修改类配置文件总的某些内容,就好定位了,查看配置文件的东西是否配置正确,如果正确就是其它问题,可能有残留数据等

问题解决方案

  • 我是把我挂载出来的 /dataDir文件夹下的version-2 和zookeeper_server.pid文件都删除,只留下myid文件
  • 将挂载出来的dataLogDir文件夹下的version-2删除

重启就好了

7. 关于kafka运行问题

问题描述

之前zookeeper和kafka集群都搭建完成,也能正常运行,然后我更换了zookeeper配置,两个集群也能正常运行,但是呢?过了一段时间,kafka集群自动死掉,我重启也不能解决。

问题排查

对于这个问题有几个猜想

  • 我更改的zookeeper配置文件是按照企业级部署,其中的配置对于机器的要求较高。

  • 另外问题,就是不关zookeeper集群问题,是kafka日志文件log空间不足等

问题解决

我是平经验搞的,之前搭建zookeeper集群的时候,也会应为有脏数据而启动不了。
我尝试吧kafka挂载出来的log中的内容删除掉。然后重启就可以了。

这个方法治标不治本,生产环境下肯定不运行删除数据的,这个问题还要待解决。先把问题记录下来,等后面研究玩zookeeper的详细机制,应该能够找到问题所在。

-----------------------------一路踩坑,一走一个坑---------------------------------

总结

这个搭建zookeeper和kafka集群,说真的,真的是一步一个坑,我一开始想用docker来管理的,但是docker网络的问题我一直没解决,然后在本机上部署,有了前面使用docker部署踩的坑,这次很容易就搞定了。

一定要注意拼写正确性,不然找bug的时候,花了两个小时找到的问题所在,竟然是某一处配置的拼写出问题了,难受啊。

如果会用宝塔的可以用这个,不然关于配置同步,还是很麻烦的。我是自己写脚本同步文件。

参考资料

有几篇自己觉得不错的参考博客

  • 本机上搭建kafka和zookeeper集群

  • 本机上搭建kafka和zookeeper集群

上面两篇结合起来看吧,第一篇用了宝塔来同步配置文件,如果不会的可以忽略,直接自己同步,写脚本,还是拷贝都可以。

  • 多服务器docker-compose搭建zookeeper和kafka集群

  • 一台服务器docker-compose搭建zookeeper和kafka集群

上面这篇文章是如果没有三台服务器,可以用docker来模拟搭建集群

最后

以上就是沉静指甲油为你收集整理的zookeeper和kafka集群搭建-错误集合1. 出现 zookeeper server is not running2. 出现zookeeper找不到jdk问题3. docker搭建zookeeper集群网络不同6 关于修改了配置文件,重启zookeeper时会失败7. 关于kafka运行问题总结的全部内容,希望文章能够帮你解决zookeeper和kafka集群搭建-错误集合1. 出现 zookeeper server is not running2. 出现zookeeper找不到jdk问题3. docker搭建zookeeper集群网络不同6 关于修改了配置文件,重启zookeeper时会失败7. 关于kafka运行问题总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部