配置Hbase出现的bug及解决方案
系统环境
- ubuntu-18.04.3-desktop-amd64
这次实验在水滴实验营中做完了之后想在自己的系统中安装hbase,bug出现在hbase单机配置,以及为分布式配置中
发现各种版本问题导致的bug,hbase-hadoop-jdk 版本对应十分严格,直接放图
Hadoop version support matrix
"S" = supported
"X" = not supported
"NT" = Not tested
从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包,如果需要的请在下面留言邮箱直接发。
注意是正文部分,不是昵称后面那个
更换jdk
首先查看自己的jdk是什么版本
java -version
如果是版本高的,那就需要安装jdk1.8.0
安装jdk1.8.0
更换jdk版本
这时候可能系统的jdk还是没有变化,这就需要用Ubuntu的java版本选择
sudo update-alternatives --config java
输入需要的jdk版本对应的序号
再次运行java -version会发现换过来了,同时记下路径
比如我这个就是"/usr/lib/jvm/java-8-openjdk-amd64"
更换hadoop版本
拷贝原来的hadoop配置文件
hadoop版本之间虽然有所不同,但是配置文件是一样的,所以可以直接拷贝
mkdir /home/hadoop/配置
cp -r /usr/local/hadoop/etc /home/hadoop/配置
解压hadoop-2.7.1,并改名,更换文件用户
解压操作:
sudo tar -zxvf /home/hadoop/下载/hadoop-2.7.1.tar.gz -C /usr/local
sudo rm -r /usr/local/hadoop
改名操作:因为之前系统环境变量中hadoop目录名就是“hadoop”,所以改名就不用重新配置系统环境变量
sudo mv hadoop-2.7.1 hadoop
更换文件用户:这样操作后在目录下所有的操作都可以不用再使用“sudo”命令
cd /usr/local
sudo chown -R hadoop ./hadoop
覆盖配置文件
这样就可以不用再写那几个配置文件了
这样搞方便了很多,但具体会不会出现副作用,还不太清楚,目前一切正常,如果有其他问题后期会更新,也欢迎大家在下面留言讨论
cp -r /home/hadoop/etc /usr/local/hadoop
查看hadoop版本
hadoop version 应该已经换过来了
其他bug
有一次操作失误导致启动服务后用jps查看发现datanode没有启动,所以需要删除tmp中的datanode和namenode,然后初始化
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
写入以下路径
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-site.xml
<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命令行
start-dfs.sh
start-hbase.sh
hbase shell
出现这个则表示配置成功
启动关闭Hadoop和HBase的顺序一定是:
启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop