配置Hbase出现的bug及解决方案

系统环境

  • ubuntu-18.04.3-desktop-amd64

这次实验在水滴实验营中做完了之后想在自己的系统中安装hbase,bug出现在hbase单机配置,以及为分布式配置中
java版本报错.png

发现各种版本问题导致的bug,hbase-hadoop-jdk 版本对应十分严格,直接放图

java_hbase.png
hbase_hadoop.png

1
2
3
4
Hadoop version support matrix
"S" = supported
"X" = not supported
"NT" = Not tested

85be-fypyuvc1101020.jpg

从jdk开始,到hadoop,再到hbase。。。全完了

为了避免此次悲剧再次发生,我们选择配置成水滴实验营的标准配置

  • jdk-1.8.0
  • hadoop-2.7.1
  • hbase-1.1.5

网上找了一圈hadoop-2.7.1都没找到,找到的要花钱,所以偷偷从水滴实验营机器里面搞了hadoop-2.7.1和hbase-1.1.5的taz包,如果需要的请在下面留言邮箱直接发。
注意是正文部分,不是昵称后面那个
aha1.png

更换jdk

首先查看自己的jdk是什么版本

1
java -version

如果是版本高的,那就需要安装jdk1.8.0

安装jdk1.8.0

安装java8.png

更换jdk版本

这时候可能系统的jdk还是没有变化,这就需要用Ubuntu的java版本选择
更换jdk.png

1
sudo update-alternatives --config java

输入需要的jdk版本对应的序号
再次运行java -version会发现换过来了,同时记下路径
比如我这个就是”/usr/lib/jvm/java-8-openjdk-amd64”

更换hadoop版本

拷贝原来的hadoop配置文件

hadoop版本之间虽然有所不同,但是配置文件是一样的,所以可以直接拷贝

1
2
mkdir /home/hadoop/配置
cp -r /usr/local/hadoop/etc /home/hadoop/配置

解压hadoop-2.7.1,并改名,更换文件用户

解压操作:

1
2
sudo tar -zxvf /home/hadoop/下载/hadoop-2.7.1.tar.gz -C /usr/local
sudo rm -r /usr/local/hadoop

改名操作:因为之前系统环境变量中hadoop目录名就是“hadoop”,所以改名就不用重新配置系统环境变量

1
sudo mv hadoop-2.7.1 hadoop

更换文件用户:这样操作后在目录下所有的操作都可以不用再使用“sudo”命令

1
2
cd /usr/local
sudo chown -R hadoop ./hadoop

覆盖配置文件

这样就可以不用再写那几个配置文件了

这样搞方便了很多,但具体会不会出现副作用,还不太清楚,目前一切正常,如果有其他问题后期会更新,也欢迎大家在下面留言讨论

1
cp -r /home/hadoop/etc /usr/local/hadoop

查看hadoop版本

hadoop version 应该已经换过来了

其他bug

有一次操作失误导致启动服务后用jps查看发现datanode没有启动,所以需要删除tmp中的datanode和namenode,然后初始化

1
2
3
cp -r /home/hadoop/etc /usr/local/hadoop
rm -r /usr/local/hadoop/tmp
hadoop namenode -format

安装hbase-1.1.5

解压->配置环境变量->修改文件目录用户

这个地方都不重点,可以看老师发的操作指南,也可以在网上搜索教程,具体的内容和上面的hadoop第2步差不多

修改配置文件 hbase-env.sh

vi /usr/local/hbase/conf/hbase-env.sh
写入以下路径

1
2
3
4
5
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
#JAVA_HOME填写记下来的jdk路径,注意是那个8的版本

export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBAS_MANAGES_ZK=true

hbase配置文件.png

修改配置文件 hbase-site.xml

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>

启动hdfs和hbase,进入hbase的shell命令行

1
2
3
start-dfs.sh
start-hbase.sh
hbase shell

出现这个则表示配置成功

aha.png

启动关闭Hadoop和HBase的顺序一定是:
启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop

坚持原创技术分享,您的支持也将成为我的动力!
-------------本文结束感谢您的阅读-------------
undefined