hadoop、ZooKeeper、hbase集群安装史上最全流程(亲测有效)

配置集群:主机master、从机s1、s2
``

`一、安装hadoop

需要的文件
VMware
Xshell
jdk 1.8.0_171
CentOS-7-x86_64-DVD-2003.iso
hadoop2.7.7
zookeeper3.6.3
hbase1.3.1
文件已上传百度网盘,密码1024

CentOS-7-x86_64-DVD-2003.iso文件清华镜像网下载

注意hadoop、ZooKeeper和hbase的版本冲突
请添加图片描述

1、先确定使用本地DHCP服务将IP地址分配到虚拟机(即自动分配动态IP地址),但是后面需要配置静态地址,这里先勾上

在这里插入图片描述

2、进入VMware开始新建虚拟机

在这里插入图片描述
在这里插入图片描述

这里首先创建master主机
在这里插入图片描述
由于我们经常使用主机master进行命令操作,copy到从机
从机只是后台运行挂起,最大磁盘大小最好大一点,这里我设置为30G
从机磁盘的大小就可以小一点,这里我设置为20G
在这里插入图片描述
如果你的电脑配置不好,最好配置和我一样
(个人建议,因为我的内存条是两条4G的,虚拟机的运行内存过大,同时启动三台虚拟机的话你的电脑会严重卡顿,我的就是卡到只能长按开机重启。。血的教训。。)

最后直接点击完成,启用虚拟机,我的虚拟机配置结果——如图所示

请添加图片描述
请添加图片描述
请添加图片描述
从机的安装流程和master主机基本一致,区别在于,磁盘大小用默认20GB大小即可
在这里插入图片描述
在这里插入图片描述
进入虚拟机后,首先需要配置语言
在这里插入图片描述
接着是安装位置
在这里插入图片描述
——这里我安装目标位置需要点击两次
在这里插入图片描述
然后是打开网络
在这里插入图片描述
这里如果网络配置打不开也无所谓,因为我们后面需要自己手动去配置静态网络的

最后选择软件选择,这里我选择GNOME桌面安装,如果是Linux大牛的话,可以跳过
小白最好选择桌面,最小安装对新手不是特别友好
在这里插入图片描述

配置ROOT密码并确认后,重启虚拟机
设置这台电脑的用户名并输入你的开机密码
注意是开机密码!!!开机密码!!!开机密码!!!
而不是终端切换管理员权限的密码
在这里插入图片描述

同意协议后进入初始页面
在这里插入图片描述

配置root用户
在这里插入图片描述

3、进入虚拟机终端配置相关配置信息

配置静态网络
电脑密码zhang2001
进入root用户su root
密码111111
cd /etc/sysconfig/network-scripts/
进入ifcfg-ens33文件编辑修改配置vi ifcfg-ens33
在这里插入图片描述
小知识
cd etc相对路径
cd /etc 绝对路径
cd etc是在当前文件夹下寻找名字为etc的文件夹并切换到该目录下
cd /etc是不管你在哪个目录下,都是切换到“/”目录下名字为etc的文件夹目录下

配置具体如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=85698115-0678-42bc-bac6-cc6294b8d285
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.137.110
NETWORK=255.255.255.0
GATWAY=192.168.137.2
DNS1=180.76.76.76

ip地址最后小数点后随意设置(有时候会出现ip冲突,意思就是说有人用你想用的ip,换一个就好
network网关在虚拟机“编辑”->“虚拟网络编辑器”中查看
点击“更改设置”
在这里插入图片描述

点击“NAT设置”查看GATWAY
在这里插入图片描述

DNS1备用网络看百度DNS
具体如图所示
在这里插入图片描述

操作完成后执行命令service network restart运行配置
ping www.baidu.com 查看是否连上网络

报错:主机能ping外网,能ping到从机
从机slave1、slave2 ping不上百度,能ping上主机master
解决:从机不是必须要ping通外网,因为我们主要使用的是master

4、关闭防火墙 输入两条命令

systemctl stop firewalld
systemctl disable firewalld

查看当前防火墙的状态 输入命令

systemctl status firewalld

在这里插入图片描述

看到Active: inactive (dead),说明防火墙已关闭
Active: active (live)说明防火墙还没有关闭,返回以上操作

5、配置主机

切换root目录cd ~ 输入命令 hostnamectl set-hostname master
然后执行重启虚拟机应用 输入命令reboot

重启后,修改hosts文件
cd /etc/hosts
添加以下配置:

192.168.137.140 master
192.168.137.141 s1
192.168.137.142 s2

如图所示
在这里插入图片描述
在这里插入图片描述
作用是让所有的虚拟机可以互相连接

6、使用ssh传输文件

打开ssh,新建会话
在这里插入图片描述

点击确定
在这里插入图片描述
点击接受并保存
在这里插入图片描述
在这里插入图片描述

结果如下图所示
在这里插入图片描述

配置好会话后,开始ssh传输文件

yum install lrzsz -y

-y的作用是,默认全部回答为yes
rz传输本地文件到linus虚拟机系统

master可以远程连接s1、s2
ssh s1 ssh s2
结果如图所示
在这里插入图片描述

7、ssh配置免密码登录

cd ~
在各个机器下输入命令
ssh-keygen -b 1024 -t rsa
然后一直回车,结果如图所示
在这里插入图片描述
在~/.ssh/目录下生成文件id_rsa、id_rsa.pub
(ls是不会显示隐藏文件的,/.ssh中的“.”就是隐藏文件
输入命令ls –all显示全部文件)
结果如图所示
在这里插入图片描述

免密码登录
需要把master的id_rsa.pub公钥发送到s1、s2中
s1、s2接收了master的id_rsa.pub公钥,master就可以免密码登录
把master的公钥放到s1、s2的authorized_keys文件里
输入命令ssh-copy-id s1(s2同上)
结果如图所示
在这里插入图片描述

s1、s2配置免密码登录
s1的公钥发给s2
结果如图所示
在这里插入图片描述
s2的公钥发给s1
结果如图所示
在这里插入图片描述
完成以上操作后,结果如图所示
在这里插入图片描述

master给master配置免密码登录
切换到ssh目录下 cd .ssh
输入命令 ssh-copy-id master
结果如图所示
在这里插入图片描述
配置权限
chmod 600 authorized_keys
chmod 修改权限的命令
600 参数含义请参考菜鸟教程
具体查看chmod命令
在这里插入图片描述
s1、s2同样的操作
(注:xshell中的粘贴不是ctrl+v,而是shift+insert)

8、解压jdk和hadoop并安装

cd ~
tar –xvzf 待解压压缩包名字–C 目标存放路径
tar –czvf 目标压缩文件名 文件或目录
结果如图所示
在这里插入图片描述

下载vim
yum install vim –y
vi 编辑文件内容,没有该文件时会新建文件
vim 编辑文件时会有高亮显示
结果如图所示
在这里插入图片描述

输入命令 vim .bash_profile
进入 .bash_profile文件进行添加JAVA_HOME
export JAVA_HOME=/root/jdk1.8.0_171
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
结果如图所示
在这里插入图片描述

配置完成后,执行命令 source .bash_profile应用配置
结果如图所示
在这里插入图片描述

然后将master配置好的java文件发送到s1、s2
输入命令 scp -r jdk1.8.0_171 root@s1:~/
结果如图所示
在这里插入图片描述

9、配置hadoop文件

(hadoop配置文件只需先在master主机上配置,后面直接scp复制到从机即可)
进入hadoop配置文件目录下cd /hadoop/etc/hadoop

(1) hadoop-env.sh

输入命令vim hadoop-env.sh
修改如下:

export JAVA_HOME=/root/jdk1.8.0_171

截图如下:
在这里插入图片描述

(2) yarn-env.sh

输入命令vim yarn-env.sh
修改如下:

JAVA_HOME=/root/jdk1.8.0_171

截图如下:
在这里插入图片描述

(3) core-site.xml

输入命令vim core-site.xml
修改如下:

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoopdata</value>
</property>
</configuration>

截图如下:
在这里插入图片描述

(4) hdfs-site.xml

输入命令vim hdfs-site.xml
修改如下:

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

截图如下:
在这里插入图片描述

(5) yarn-site.xml

输入命令vim yarn-site.xml
修改如下:

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux.services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

截图如下:
在这里插入图片描述

(6) mapred-site.xml. template

输入命令vim mapred-site.xml. template
修改如下:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

修改完成后,需要改名成mapred-site.xml
mv mapred-site.xml.template mapred-site.xml

截图如下:
在这里插入图片描述

(7)hadoopMaster节点配置slaves

输入命令vim slaves
修改如下:
s1
s2
截图如下:
在这里插入图片描述

完成以上操作后切换到root目录下
输入命令scp -r hadoop s1:~/
将配置好的hadoop配置文件,直接将hadoop文件夹发送到s1、s2
截图如下:
在这里插入图片描述
在这里插入图片描述

10、配置hadoop启动的系统环境变量

各个机器都需要在文件尾配置追加
切换到root目录下
输入命令vim .bash_profile
修改如下:

PATH=$PATH:$HOME/bin

export JAVA_HOME=/root/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/root/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

截图如下:
在这里插入图片描述

完成后需要输入命令source .bash_profile应用配置

截图如下:
在这里插入图片描述

11、创建数据目录

各个机器创建都是一样的数据目录
切换到root目录下
输入命令:
mkdir /root/hadoopdata
截图如下:
在这里插入图片描述

12、启动hadoop集群

格式化文件系统,只能格式化一次
如果多次格式化文件系统,DataNode或NameNode或两个都启动不了
在master主机上的root目录下
输入命令:
hdfs namenode –format
截图如下:
在这里插入图片描述

(1)启动服务

一步启动hadoop集群服务
切换到hadoop的安装目录中的sbin文件夹中
cd $HADOOP_HOME/sbin
命令./start-all.sh

分步启动hadoop集群服务
切换到hadoop的安装目录中的bin文件夹下
cd $HADOOP_HOME/bin
命令start-dfs.sh start-yarn.sh

(2)关闭服务

一步关闭hadoop集群服务
~/hadoop/sbin/stop-all.sh

分步关闭hadoop集群服务
stop-yarn.sh stop-dfs.sh

报错一

记录:使用一次启动所有hadoop集群服务命令start-all.sh
jps查看时少了DataNode

在这里插入图片描述
解决:
关闭集群服务
分步启动hadoop集群服务
在这里插入图片描述

二、安装ZooKeeper

切换的/opt目录下,创建data文件夹(存放ZooKeeper、hbase的数据文件夹)、server文件夹(ZooKeeper、hbase的安装文件夹)、soft文件夹 (ZooKeeper、hbase的压缩包文件夹)

1、上传并解压ZooKeeper压缩包

cd /opt/soft -> rz上传压缩包
cd /opt/server -> tar –xvzf * -C *解压压缩包到指定文件夹路径下

2、配置zoo.cfg

切换路径cd /opt/server/zookeeper/conf
输入命令cp zoo_sample.cfg zoo.cfg copy一份到当前目录下,并命名为zoo.cfg
输入命令vim zoo.cfg修改zoo.cfg文件
配置如图所示
在这里插入图片描述

更新

需要在文件尾部追加以下文件
server.1=master:2888:3888
server.2=s1:2888:3888
server.3=s2:2888:3888

结果如图所示
在这里插入图片描述

配置ZooKeeper的环境变量
vim /etc/profile
添加以下信息
export ZOOKEEPER =/opt/server/zookeeper

后面需要改成以下内容,方便切换ZooKeeper安装目录

export ZOOKEEPER_HOME =/opt/server/zookeeper
export PATH=$PATH:$ZOOKEEPER/bin

结果如图所示
在这里插入图片描述
完成以上操作后输入命令source /etc/profile应用配置

1)tickTime:通信心跳数,Zookeeper服务器心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
2)initLimit:LF初始通信时限
集群中的follower跟随者服务器(F)与leader领导者服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
投票选举新leader的初始化时间
Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。
Leader允许F在initLimit时间内完成这个工作。
3)syncLimit:LF同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,
Leader认为Follwer死掉,从服务器列表中删除Follwer。
在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
如果L发出心跳包在syncLimit之后,还没有从F那收到响应,那么就认为这个F已经不在线了。
4)dataDir:数据文件目录+数据持久化路径
保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。
5)clientPort:监听客户端连接的端口

主要修改了dataDir文件夹的路径和添加了dataLogDir文件夹的路径
完成后,启动ZooKeeper
切换到bin目录下输入命令./zkServer.sh start
jps查看是否启动成功
启动成功的截图如图所示
在这里插入图片描述
我的截图如图所示
在这里插入图片描述

报错二

配置ZooKeeper环境变量时
vim /etc/profile上添加环境变量信息
/etc/profile文件是配置ZOOKEEPER_HOME、HBASE_HOME
可以方便切换ZooKeeper、hbase的安装目录
方便启动集群服务

export ZOOKEEPER=/opt/server/zookeeper
export PATH= P A T H : PATH: PATH:ZOOKEEPER/bin
出现报错,截图如下
在这里插入图片描述

原因:在/etc/profile文件中某处多了个p(我也不道啊。。我就是歌姬吧QAQ)

三、hbase安装

(1)上传下载好的压缩包hbase-1.2.1-bin.tar.gz到/opt/soft/,解压到 /opt/server

cd /opt/soft
rz命令上传压缩包

tar –xvzf hbase-1.2.1-bin.tar.gz –C /opt/server

命令解压压缩包

(2)软连接

ln -s /root/hadoop/etc/hadoop/core-site.xml /opt/server/hbase/conf/core-site.xml
ln -s /root/hadoop/etc/hadoop/hdfs-site.xml /opt/server/hbase/conf/hdfs-site.xml

截图如图所示
在这里插入图片描述

(3)配置hbase文件

在hbase的conf目录下进行
cd /opt/server/hbase/conf

1、vim hbase-site.xml

配置信息如下

<configuration>
<property>
    <name>hbase.rootdir</name>
        <!-- hbase存放数据目录 -->
    <value>hdfs://master:9000/hbase</value>
        <!-- 端口要和Hadoop的fs.defaultFS端口一致 -->
</property>
<property>
    <name>hbase.cluster.distributed</name>
        <!-- 是否分布式部署 -->
    <value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
<property>
    <name>hbase.master.port</name>
    <value>16000</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
        <!-- zookeeper服务启动的节点,最好为奇数个 -->
    <value>master,s1,s2</value>
</property>
<property>
        <!-- zookeeper配置、日志等的存储位置,必须为已存在 -->
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/data/zookeeper</value>
</property>
</configuration>
 

在这里插入图片描述

2、vim hbase-env.sh

(1)注释掉export JAVA_HOME=/root/jdk1.8.0_171并修改成JAVA_HOME的路径

在这里插入图片描述

(2)去掉注释,将true改为false

export HBASE_MANAGES_ZK=false
在这里插入图片描述

3、vim regionservers

注册需要启动hbase的主机名
在这里插入图片描述

cat regionservers运行一下

在这里插入图片描述

报错三

[root@master bin]# ./start-hbase.sh
/opt/server/hbase/bin/hbase:行437: /root/java/jdk1.8.0_181-amd64/bin/java: 没有那个文件或目录
running master, logging to /opt/server/hbase/bin/…/logs/hbase-root-master-master.out
/opt/server/hbase/bin/…/bin/hbase:行437: /root/java/jdk1.8.0_181-amd64/bin/java: 没有那个文件或目录
s2: running regionserver, logging to /opt/server/hbase/bin/…/logs/hbase-root-regionserver-s2.out
master: running regionserver, logging to /opt/server/hbase/bin/…/logs/hbase-root-regionserver-master.out
s1: running regionserver, logging to /opt/server/hbase/bin/…/logs/hbase-root-regionserver-s1.out
s2: /opt/server/hbase/bin/…/bin/hbase:行437: /root/java/jdk1.8.0_181-amd64/bin/java: 没有那个文件或目录
master: /opt/server/hbase/bin/…/bin/hbase:行437: /root/java/jdk1.8.0_181-amd64/bin/java: 没有那个文件或目录
s1: /opt/server/hbase/bin/…/bin/hbase:行437: /root/java/jdk1.8.0_181-amd64/bin/java: 没有那个文件或目录
解决:
问题出自与配置文件hbase-env.sh中的java目录的路径
由于java解压后的文件夹不是正常的jdk1.8.0_171,如图所示
这是报错时的配置文件截图
导致找不到JAVA_HOME
在这里插入图片描述
修改为java的安装目录

报错四

在启动HBase之前要先把三台机的zookeeper给启动起来,不然会出现刚启动hbase的进程就消失,我通过查看日志文件,找出的原因是zookeeper没有启动。报错信息如下:

020-06-20 11:31:30,550 INFO [main-SendThread(node1:2181)] zookeeper.ClientCnxn: Opening socket connection to server node1/10.211.55.59:2181. Will not attempt to authenticate using SASL (unknown error)
2020-06-20 11:31:30,550 WARN [main-SendThread(node1:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: 拒绝连接
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn S e n d T h r e a d . r u n ( C l i e n t C n x n . j a v a : 1081 ) 2020 − 06 − 2011 : 31 : 30 , 652 I N F O [ m a i n − S e n d T h r e a d ( n o d e 2 : 2181 ) ] z o o k e e p e r . C l i e n t C n x n : O p e n i n g s o c k e t c o n n e c t i o n t o s e r v e r n o d e 2 / 10.211.55.60 : 2181. W i l l n o t a t t e m p t t o a u t h e n t i c a t e u s i n g S A S L ( u n k n o w n e r r o r ) 2020 − 06 − 2011 : 31 : 30 , 652 E R R O R [ m a i n ] z o o k e e p e r . R e c o v e r a b l e Z o o K e e p e r : Z o o K e e p e r c r e a t e f a i l e d a f t e r 4 a t t e m p t s 2020 − 06 − 2011 : 31 : 30 , 652 E R R O R [ m a i n ] m a s t e r . H M a s t e r C o m m a n d L i n e : M a s t e r e x i t i n g j a v a . l a n g . R u n t i m e E x c e p t i o n : F a i l e d c o n s t r u c t i o n o f M a s t e r : c l a s s o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r . a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r . c o n s t r u c t M a s t e r ( H M a s t e r . j a v a : 2486 ) a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r C o m m a n d L i n e . s t a r t M a s t e r ( H M a s t e r C o m m a n d L i n e . j a v a : 231 ) a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r C o m m a n d L i n e . r u n ( H M a s t e r C o m m a n d L i n e . j a v a : 137 ) a t o r g . a p a c h e . h a d o o p . u t i l . T o o l R u n n e r . r u n ( T o o l R u n n e r . j a v a : 70 ) a t o r g . a p a c h e . h a d o o p . h b a s e . u t i l . S e r v e r C o m m a n d L i n e . d o M a i n ( S e r v e r C o m m a n d L i n e . j a v a : 127 ) a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r . m a i n ( H M a s t e r . j a v a : 2496 ) C a u s e d b y : o r g . a p a c h e . h a d o o p . h b a s e . Z o o K e e p e r C o n n e c t i o n E x c e p t i o n : m a s t e r : 600000 x 0 , q u o r u m = n o d e 1 : 2181 , n o d e 2 : 2181 , n o d e 3 : 2181 , b a s e Z N o d e = / h b a s e U n e x p e c t e d K e e p e r E x c e p t i o n c r e a t i n g b a s e n o d e a t o r g . a p a c h e . h a d o o p . h b a s e . z o o k e e p e r . Z o o K e e p e r W a t c h e r . c r e a t e B a s e Z N o d e s ( Z o o K e e p e r W a t c h e r . j a v a : 206 ) a t o r g . a p a c h e . h a d o o p . h b a s e . z o o k e e p e r . Z o o K e e p e r W a t c h e r . < i n i t > ( Z o o K e e p e r W a t c h e r . j a v a : 187 ) a t o r g . a p a c h e . h a d o o p . h b a s e . r e g i o n s e r v e r . H R e g i o n S e r v e r . < i n i t > ( H R e g i o n S e r v e r . j a v a : 594 ) a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r . < i n i t > ( H M a s t e r . j a v a : 420 ) a t s u n . r e f l e c t . N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e 0 ( N a t i v e M e t h o d ) a t s u n . r e f l e c t . N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e ( N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . j a v a : 62 ) a t s u n . r e f l e c t . D e l e g a t i n g C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e ( D e l e g a t i n g C o n s t r u c t o r A c c e s s o r I m p l . j a v a : 45 ) a t j a v a . l a n g . r e f l e c t . C o n s t r u c t o r . n e w I n s t a n c e ( C o n s t r u c t o r . j a v a : 423 ) a t o r g . a p a c h e . h a d o o p . h b a s e . m a s t e r . H M a s t e r . c o n s t r u c t M a s t e r ( H M a s t e r . j a v a : 2479 ) . . . 5 m o r e C a u s e d b y : o r g . a p a c h e . z o o k e e p e r . K e e p e r E x c e p t i o n SendThread.run(ClientCnxn.java:1081) 2020-06-20 11:31:30,652 INFO [main-SendThread(node2:2181)] zookeeper.ClientCnxn: Opening socket connection to server node2/10.211.55.60:2181. Will not attempt to authenticate using SASL (unknown error) 2020-06-20 11:31:30,652 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts 2020-06-20 11:31:30,652 ERROR [main] master.HMasterCommandLine: Master exiting java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster. at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2486) at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:231) at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:137) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127) at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2496) Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: master:600000x0, quorum=node1:2181,node2:2181,node3:2181, baseZNode=/hbase Unexpected KeeperException creating base node at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.createBaseZNodes(ZooKeeperWatcher.java:206) at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:187) at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:594) at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:420) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2479) ... 5 more Caused by: org.apache.zookeeper.KeeperException SendThread.run(ClientCnxn.java:1081)2020062011:31:30,652INFO[mainSendThread(node2:2181)]zookeeper.ClientCnxn:Openingsocketconnectiontoservernode2/10.211.55.60:2181.WillnotattempttoauthenticateusingSASL(unknownerror)2020062011:31:30,652ERROR[main]zookeeper.RecoverableZooKeeper:ZooKeepercreatefailedafter4attempts2020062011:31:30,652ERROR[main]master.HMasterCommandLine:Masterexitingjava.lang.RuntimeException:FailedconstructionofMaster:classorg.apache.hadoop.hbase.master.HMaster.atorg.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2486)atorg.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:231)atorg.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:137)atorg.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)atorg.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)atorg.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2496)Causedby:org.apache.hadoop.hbase.ZooKeeperConnectionException:master:600000x0,quorum=node1:2181,node2:2181,node3:2181,baseZNode=/hbaseUnexpectedKeeperExceptioncreatingbasenodeatorg.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.createBaseZNodes(ZooKeeperWatcher.java:206)atorg.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:187)atorg.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:594)atorg.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:420)atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)atjava.lang.reflect.Constructor.newInstance(Constructor.java:423)atorg.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2479)...5moreCausedby:org.apache.zookeeper.KeeperExceptionConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.createNonSequential(RecoverableZooKeeper.java:565)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.create(RecoverableZooKeeper.java:544)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.createWithParents(ZKUtil.java:1204)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.createWithParents(ZKUtil.java:1182)

总结来说,出现错误有很大几率是因为配置文件时的粗心大意,可能漏了个标点符号,也可能失手摁多了个字母
启动hbase shell报错
ERROR: Can’t get master address from ZooKeeper; znode data == null
结果如图所示
在这里插入图片描述

查看jps截图如图所示
在这里插入图片描述

访问master:50070,结果如图所示
进入hadoop端口界面
在这里插入图片描述

发现都没有问题

报错五

2022-05-05 21:15:32,815 ERROR [main] client.ConnectionManager$HConnectionImplementation: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in ‘zookeeper.znode.parent’. There could be a mismatch with the one configured in the master.
截图如图所示:
在这里插入图片描述

原因:
没有配置ZooKeeper集群,ZooKeeper只在master主机上启动运行

解决办法:
切换到ZooKeeper的安装目录下
cd $ZOOKEEPER_HOME
输入命令vim zoo.cfg
在zoo.cfg文件尾部追加以下内容:
server.1=master:2888:3888
server.2=s1:2888:3888
server.3=s2:2888:3888
结果截图如图所示:
在这里插入图片描述

报错六

在给从机s1、s2追加内容后,出现新报错
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
截图如图所示:
在这里插入图片描述

重启服务重启虚拟机后,出现新的报错信息
2022-05-06 08:54:02,490 ERROR [main] client.ConnectionManager$HConnectionImplementation: Can’t get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
截图如图所示:
在这里插入图片描述
去搜索了不同的解决办法
在这里插入图片描述
方法不适用,问题没有解决

原因:
ZooKeeper只在master启动服务,s1、s2没有配置与master一步启动集群服务,导致ZooKeeper服务启动命令只在master主机上输入,只有master启动了ZooKeeper服务
解决办法:
先在ZooKeeper的服务关闭,再去master把hbase服务关闭
再分别去s1、s2启动ZooKeeper服务
cd $ZOOKEEPER_HOME 切换ZooKeeper安装目录
cd bin
./zkServer.sh status查看ZooKeeper的节点状态
在这里插入图片描述
在这里插入图片描述

结果首次运行报错,原因是主节点master正在初始化
一会再重新输入命令就可以成功运行了

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
从字面可以知道,主节点正在初始化

解决方案
https://blog.csdn.net/a_drjiaoda/article/details/88697894
如图所示
在这里插入图片描述

192.168.137.140:16010
查看hbase web网页界面

在这里插入图片描述
问题解决

有不同意见的大佬可在评论区相互交流哦!

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

词一丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值