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

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

配置集群:主机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.(ZooKeeperWatcher.java:187) at org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:594) at org.apache.hadoop.hbase.master.HMaster.(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网页界面


问题解决

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/905204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存