谨慎Apache-Zookeeper-3.5.5以后在CentOS7.X安装的坑

目录

前言

一、现场还原

 二、问题诊断

三、问题原因

 总结


前言

        最近由于项目需要,在服务器上需要搭建Hbase完全分布式集群环境。开发环境,采用的是最小节点的方式进行搭建(即3个节点的模式)。资源环境列表如下:

序号依赖组件说明
1jdk-8u201-linux-x64.tar.gz基础的jdk依赖
2hadoop-3.1.3.tar.gzhadoop依赖
3apache-zookeeper-3.5.7.tar.gzzookeeper协调器
4hbase-2.4.11-bin.tar.gzhbase数据库

        以上组件都部署在三台不同的物理机节点中,操作系统是centos7.X。本场景zookeeper用于为hbase提供外部的协调器,而不是采用Hbase内置的Zookeeper。众所周知,zookeeper依赖于jdk,需要进行提前安装并配置好相应的环境变量。本文重点在于讲解zookeeper的问题,因此关于jdk的安装请查询相关网关可以解决。

        闲言少叙,本文主要讲解在Centos7中,JDK正确安装及配置,系统防火墙也正常配置,但Zookeeper无法启动的一种可能问题,及主要的解决方案。这里也得到一个博主的帮助,再此记录,如果有朋友遇到类似的问题,能帮助您解决相应的问题。

一、现场还原

        当在目标服务器中,进入zookeeper的启动目录中,准备启动zookeeper,命令如下:

cd /software/zookeeper/bin/
./zkServer.sh start

        上述命令执行之后,zookeeper并没有正常启动。在窗口中看到如下结果:

ZooKeeper JMX enabled by default
Using config: /software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... FAILED TO START

         进一步的,使用zookeeper的状态查看命令:

./zkServer.sh status

        将看到下面的执行结果:

ZooKeeper JMX enabled by default
Using config: /software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

 二、问题诊断

        相信很多同学在看到以上的错误后,多半都会直接复制这个报错信息去搜索引擎一顿狂搜,我一度也这么干过(很容易被误导):

Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

         打开这些文章,如果已经解决您的问题,那么您可以不用看下去了。因为我在看了这些文章,问题依然存在。通常来说,可能会有问题都是以下几点:

        1、防火墙没有关

        2、jdk没有正确安装

        3、zoo.cfg配置文件有误

但很不幸,这些都确认没有问题。

        首先jdk已配置(java -version),防火墙查看命令:systemctl status firewalld

         其次防火墙已经关闭(如果没有关闭可执行:systemctl stop firewalld),zoo.cfg配置确认没有冲突没有问题。

        看到这里,还有一个办法,实际去看一下zookeeper的运行日志,我们找到zookeeper的logs目录,通过一下命令查看日志:

cd /logs
cat zookeeper-root-server-master.out

 此时,真正的问题才开始显示出来:

 报错信息如下:

找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

到这里,再确认一下您下载zookeeper的版本,是不是apache-zookeeper-3.5.5以后的版本,如果您刚好是用的3.5.5以后的版本,那么请再检查一下,压缩包是不是不带bin。

三、问题原因

        其实出现这个问题的原因并不是我们配置的问题,而是我们下载软件的问题。也是在各种安装教程非常多的情况下(而且都是介绍3.5.5以前的版本安装的),大家以为下载的包是一样的,因此就忽略这个最基础的问题。找到问题后就很容易解决了,下载带bin的包即可。

        其实Zookeeper官网上是有介绍的,不同版本的更新日志,只是大家没有仔细去看,当然这个粗心的人也包括作者本人。

        打开zookeeper官网介绍:

        相信大家一定都没注意吧,如果经历过各种无效的,真的比较崩溃就权当是一种教训吧。一定要下以下红框中的版本。

         可以看到,带bin的包比不带bin的要大一下。将下载的包重新安装就好了。启动服务后可以看到正常。

 总结

        以上就是本文的主要内容,本文主要讲解在Centos7中,JDK正确安装及配置,系统防火墙也正常配置,但Zookeeper无法启动的一种可能问题及解决办法,希望可以帮助你解决困境。

参考博客:

1、zookeeper-3.5.5安装报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain-新版本zookeeper易犯错误

2、zk报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain|Error contacting service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231090.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ISCTF2023 部分wp

学一年了还在入门( web where_is_the_flag ISCTF{41631519-1c64-40f6-8dbb-27877a184e74} 圣杯战争 <?php // highlight_file(__FILE__); // error_reporting(0);class artifact{public $excalibuer;public $arrow;public function __toString(){echo "为Saber选择…

C++初阶(十三)vector

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、vector的介绍二、vector的模拟实现1、模拟实现2、测试结果 一、vector的介绍 vector的文…

kettle入门教程

一、概述 1.什么是kettle Kettle是一款开源的ETL(Extract-Transform-Load)工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装&#xff0c;数据抽取高效稳定。 2.kettle工程存储方式 &#xff08;1&#xff09;以XML形式存储 …

手敲myarraylist,深入了解其运行逻辑

1、自定义MyArrayList类 该类里面基本有两个属性&#xff0c;一个是用来存放数据的数组&#xff0c;另外一个是用来描述已经存放数据的数量。同时设置arraylist表的默认长度为10&#xff1b;代码如下&#xff1a; public class MyArrayList {private int[] elem;private int u…

Echarts大屏-数据可视化

使用原生htmljavascript实现大屏展示,较为麻烦的为边框的四个小角使用伪元素生成,其余echarts使用如下快速上手 - Handbook - Apache ECharts 效果如下:

VsCode中使用功能vite创建vue3+js项目报错

VsCode中使用功能vite创建vue3js项目报错 VsCode中使用功能vite创建vue3js项目import模块报错如下处理方法 VsCode中使用功能vite创建vue3js项目import模块报错如下 处理方法 在项目根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&q…

el-select多选框,数据拼接

将多选框数据 按照逗号拼接为字符串 getTagIds(data, type) {if (type "array") {let array data.join(",")return array} else {let string data.split(",");return string}}, 在调用这个方法时需要&#xff0c;另外传一个字符串type,以此来…

基于BP神经网络的手写体数字识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 filename dir(images\*.bmp); %图像文件格式 load BP.matfilename dir(test\*.bmp); …

1992-2021年区县经过矫正的夜间灯光数据(GNLD、VIIRS)

1992-2021年区县经过矫正的夜间灯光数据&#xff08;GNLD、VIIRS&#xff09; 1、时间&#xff1a;1992-2021年3月&#xff0c;其中1992-2013年为年度数据&#xff0c;2013-2021年3月为月度数据 2、来源&#xff1a;DMSP、VIIRS 3、范围&#xff1a;区县数据 4、指标解释&a…

BUUCTF刷题之路-pwn-ciscn_2019_n_81

这 题查保护的时候吓了一跳&#xff0c;保护全开。脑子飞速旋转是要我绕过canary,PIE然后再利用栈溢出劫持程序流吗&#xff1a; 然后扔进IDA中查看下大致流程&#xff1a; 大致看出var是个数组&#xff0c;当var[13]17的时候就会得到system。那还不简单直接写payload: from p…

TA-Lib学习研究笔记(一)

TA-Lib学习研究笔记&#xff08;一&#xff09; 1.介绍 TA-Lib&#xff0c;英文全称“Technical Analysis Library”,是一个用于金融量化的第三方库&#xff0c;涵盖了150多种交易软件中常用的技术分析指标&#xff0c;如RSI,KDJ,MACD, MACDEXT, MACDFIX, SAR, SAREXT, MA,SM…

【JavaEE】Spring小练习——存储和获取对象

一、题目&#xff1a; 在 Spring 项目中&#xff0c;通过 main 方法获取到 Controller 类&#xff0c;调用 Controller 里面通过注入的方式调用Service 类&#xff0c;Service 再通过注入的方式获取到 Repository 类&#xff0c;Repository 类里面有一个方法构建⼀个 User 对象…