HBase2.2.2安装时的问题
前言
大数据实验在安装Hadoop后熟悉HBase操作时安装HBase,在安装后使用hbase version
查看是否安装成功时出现问题。
环境:Ubuntu20.04 + Hadoop3.2.3 + HBase2.2.2
问题1
使用hbase version
命令之后出现如下问题:
/hone/hadoop/hadoop3/hadoop-3.2.3/libexec/hadoop-functions.sh:行2366:HADOoP_oRG.APACHE.HADOOP .HBASE.uTIL.GETJAVAPROPERTY_uSER:无效的变量名
/hone/hadoop/hadoop3/hadoop-3.2.3/libexec/hadoop-functions sh:行2461: HADOoP_oRG.APACHE.HADOOP .HBASE.uTIL.GETJAVAPROPERTY_oPTS:无效的变量名
错误:找不到或无法加载主类org.apache.hadoop.hbase.util.GetJavaProperty
原因: 中文意思:无效变量名,错误:找不到或无法加载主类,可能是Hadoop和Hbase包冲突所致或者 Hadoop 中的配置文件与 Hbase 不兼容。
解决方法: Hbase 自带是有 Hadoop 中的依赖文件的,我们让 Hbase 不使用本地 Hadoop 中的文件,使用自带的配置文件即可。
(1)推荐修改自己的hbase安装目录的conf下的hbase-env文件,删去最后一行开头的#
注释保存退出即可。
vim /home/hadoop/hbase/hbase-2.2.2/conf/hbase-env.sh
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
#解决hadoop和hbase的jar冲突问题,这个就是让hbase不扫描hadoop的jar包。
参考:原文1 ,原文2
(2)也可以在配置环境变量的~/.bashrc
文件中注释掉Hadoop有关的配置(在相关配置开始加#
注释该行),但是这样使用Hadoop时就需要进入到其安装目录下不方便。
vim ~/.bashrc #当前用户的配置文件
source ~/.bashrc #让配置立即生效
如果没有生效,可能是由于使用的是当前用户的配置文件,所以要重新打开一个终端,这时才会读取该配置文件,配置也才会真正生效。然后用hadoop version
命令查看如果显示未找到命令就是注释掉了。
参考:原文
问题2
在解决上面的问题1时,修改之后再输入hbase version
命令时,报以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.hadoop.hbase.util.VersionInfo.<clinit>(VersionInfo.java:35)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
原因: 百度之后:一个常见的java程序报错的格式(即某个包找不到),原以为是环境变量配置或者配置文件的问题。如果是java程序错误,应该不是配置错误,多半是命令本身出现了错误,猜测是文件损坏了。于是直接将hbase重新下载,最后解决了问题。
而我在使用tar
命令解压时就出现了问题3(应该是断网的原因,没有下载完整的压缩包),刚开始没有管以为没影响,结果出错半天没有解决还以为是环境变量配置或者版本不兼容问题。
解决方法: 所以最后就是重新下载完好的压缩包解压之后再没有报错。
参考: 原文
问题3
在执行tar
命令时出现以下问题:
gzip: stdin: unexpected end of file
tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now
原因: 在下载安装包的时候,安装包没有下载完整
解决方法: 重新下载安装包解压。
参考: 原文
问题4
启动HBase之后输入hbase shell命令之后出现以下警告:
2022-04-24 18:21:56,153 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
原因: 百度之后:在hadoop包中搜索发现,java.library.path被定义为$JAVA_LIBRARY_PATH,但是我们没有定义JAVA_LIBRARY_PATH,
配置这个环境变量就可以了。
解决方法:
进入编辑配置环境变量:
vim ~/.bashrc
加入以下内容($HADOOP_HOME就是你的hadoop安装目录配置的环境变量):
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
保存并退出,输入以下命令让配置生效:
source ~/.bashrc
参考: 原文