当前位置: 首页 > news >正文

Zookeeper 集群搭建过程中常见错误

文章目录

    • Mode: standalone
    • 启动失败

Mode: standalone

这通常表示 Zookeeper 配置为单节点模式,而不是集群模式。需要检查 zoo.cfg 文件中的配置,确保包含了所有集群节点的信息。

启动失败

/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

首先查看 $ZOOKEEPER_HOME/logs 目录下的 .out 后缀文件中报错内容(在 hadoop 系统中,.log 结尾的日志文件通常用于记录应用程序的日志信息,而 .out 结尾的文件则用于存储标准输出和标准错误信息),出现其他的报错问题都可以去 .out 后缀文件里查看报错信息,根据报错信息能更容易找到问题所在,更方便解决问题。

常见的错误如下:

  • 数据目录和日志目录:写绝对路径,不要写相对路径,也不要直接写 $ZOOKEEPER_HOME/tmp/data,示例

    dataDir=/opt/zookeeper-3.5.7/tmp/data
    
  • 服务器地址问题,如果这里写的 B 写的是用户名,检查 /etc/hosts 是否配置 IP 映射

    server.A=B:C:D
    
  • myid 不匹配: 在每个 Zookeeper 节点的数据目录下的 myid 文件,其中包含一个数字,表示该节点在集群中的唯一标识。如果这个数字与 zoo.cfg 中上述配置 A 不匹配,可能会导致集群故障。

  • 权限问题: 操作系统权限不足可能导致 Zookeeper 无法启动或运行。需要确保 Zookeeper 安装目录具有适当的读写执行 rwx 权限。

  • 进程冲突: 如果在启动 Zookeeper 时出现错误信息

    already running as process XXX 
    

    表示同一台机器上已经有一个 Zookeeper 进程在运行。可能需要停止现有的进程,或者检查是否有残留的进程占用端口,可以通过查看端口占用情况,如使用 netstat -apn | grep 2181 命令,解决端口冲突问题。

  • 防火墙未关闭:防火墙可能会阻止 Zookeeper 集群之间的通信。需要确保防火墙已关闭,或者将 Zookeeper 集群的端口添加到防火墙白名单中。

    例如,如果你使用的是firewalld,关闭防火墙示例代码

    systemctl stop firewalld.service # 停止firewall
    systemctl disable firewalld.service # 禁止firewall开机启动
    

    修改完防火墙配置文件后你需要保存修改并重启防火墙服务,以使更改生效。可以使用以下命令重启防火墙。具体的命令也取决于你使用的防火墙软件

    systemctl restart firewalld
    

    如果你使用的是 iptables 添加白名单示例代码

    iptables -A INPUT -p tcp --dport 2181 -j ACCEPT
    
  • Java 环境问题Java 环境未正确配置或使用的 Java 版本与 Zookeeper 不兼容。

解决这些问题通常需要仔细检查配置文件、日志文件和操作系统设置,并根据具体错误信息进行相应的调整。

相关文章:

  • Java设计模式之单例模式以及如何防止通过反射破坏单例模式
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(下)
  • XML简介 (EXtensible Markup Language)
  • mybatis-plus阻止全表更新与删除
  • Wavesurfer.js绘制波形图
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • 软考高级难度排行榜,哪个科目相对较容易呢?
  • web前端游戏项目-堆木头游戏【附源码】
  • apache poi_5.2.5 实现表格内某一段单元格的复制
  • 通过 Higress Wasm 插件 3 倍性能实现 Spring-cloud-gateway 功能
  • 【ARMv8M Cortex-M33 系列 1 -- SAU 介绍】
  • 3. BlazorSignalRApp 结合使用 ASP.NET Core SignalR 和 Blazor
  • 【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型
  • 华为---登录USG6000V防火墙---console、web、telnet、ssh方式登录
  • Pycharm报的一些Python语法错误
  • C# 免费离线人脸识别 2.0 Demo
  • interface和setter,getter
  • JavaScript 基础知识 - 入门篇(一)
  • PHP CLI应用的调试原理
  • python学习笔记-类对象的信息
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Vue实战(四)登录/注册页的实现
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 记录:CentOS7.2配置LNMP环境记录
  • 学习HTTP相关知识笔记
  • 湖北分布式智能数据采集方法有哪些?
  • ​Linux·i2c驱动架构​
  • ​插件化DPI在商用WIFI中的价值
  • # Java NIO(一)FileChannel
  • #includecmath
  • #QT(TCP网络编程-服务端)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.01.09
  • (转)jdk与jre的区别
  • (转)ObjectiveC 深浅拷贝学习
  • (转)菜鸟学数据库(三)——存储过程
  • *2 echo、printf、mkdir命令的应用
  • .gitignore文件---让git自动忽略指定文件
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET与 java通用的3DES加密解密方法
  • .net与java建立WebService再互相调用
  • @RequestBody与@ModelAttribute
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [1]-基于图搜索的路径规划基础
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians