HBase 安装之后版本的验证的bug:(错误的替换、找不到或无法加载主类、SLF4J)

简介: HBase 安装之后版本的验证的bug:(错误的替换、找不到或无法加载主类、SLF4J)

问题描述:

验证Hbase是否安装成功时爆出一大堆信息:


/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2360: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:错误的替换
/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2455: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:错误的替换
错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase 2.2.2
Source code repository git://6ad68c41b902/opt/hbase-rm/output/hbase revision=e6513a76c91cceda95dad7af246ac81d46fa2589
Compiled by hbase-rm on Sat Oct 19 10:10:12 UTC 2019
From source with checksum 4d23f97701e395c5d34db1882ac5021b


解决方式一:修改 hbase-env.sh 文件(hbase-env.sh 在 hbase 安装目录下的 /usr/local/hbase/conf 目录下)

hbase-env.sh 文件 最后一句:前面的注释去掉。(先到该目录,然后右键该目录,用vim打开)


18.png


解决方式二:如果问题还没有得到解决:例如还有一些问题:

(1)“找不到或无法加载主类”的问题:org.apach.hadoop.habase.util.GetJavaProperty

/usr/local/hadoop/bin../libexec/hadoop-functions.sh行HADOOP._ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:错误的替换。

解决:修改hbase安装目录下 /bin/目录下的hbase文件:(先到该目录,然后右键该目录,用vim打开)

① 在add_to_cp_if_exists “${HBASE_HOME}/hbase-server/target” 下添加:

# Needed for GetJavaProperty check below
add_to_cp_if_exists "${HBASE_HOME}/hbase-server/target/classes"

② 将以下代码注释掉:

#add the hbase jars for each module
    for f in $HBASE_HOME/hbase-jars/hbase*.jar; do
        if [[ $f = *sources.jar ]]
      then
        : # Skip sources.jar
      elif [ -f $f ]
      then
        CLASSPATH=${CLASSPATH}:$f;
      fi
    done


③ 在if [ -n "{HADOOP_IN_PATH}" ] && [ -f "{HADOOP_IN_PATH}" ] && [ -f "{HADOOP_IN_PATH}" ]; then 下添加:


# If built hbase, temporarily add hbase-server*.jar to classpath for GetJavaProperty
  # Exclude hbase-server*-tests.jar
  temporary_cp=
  for f in "${HBASE_HOME}"/lib/hbase-server*.jar; do
    if [[ ! "${f}" =~ ^.*\-tests\.jar$ ]]; then
      temporary_cp=":$f"
    fi
  done


④ 修改:HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$CLASSPATH" "${HADOOP_IN_PATH}" \

为:

 

HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$CLASSPATH${temporary_cp}" "${HADOOP_IN_PATH}" \

然后保存并退出。


(2)SLF4J 的问题:Class path contains multiple SLF4J bindings.


19.png

原因:路径中含有冲突的jar包,如下图所示,一个在hbase路径下另一个在hadoop路径下。


20.png

21.png


解决:将HBase 或 Hadoop 目录下的 slf4j-logj12-1.7.25.jar, 其中一个改一下,

例如修改 HBase目录下的 slf4j-logj12-1.7.25.jar 为:slf4j-logj12-1.7.25.jar-copy (右键搜索到的文件 -》 重命名)

 

(3)现在还有问题:HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER: 错误的替换


22.png


解决:直接忽视

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
分布式计算 Hadoop Shell
93 hbase安装
93 hbase安装
50 0
|
8月前
|
SQL 分布式计算 Hadoop
Hadoop集群hbase的安装
Hadoop集群hbase的安装
143 0
|
存储 分布式计算 Hadoop
Docker-13:Docker安装Hbase
Docker环境中安装配置Hbase,并且初始化本地环境访问Hbase
1153 0
Docker-13:Docker安装Hbase
|
机器学习/深度学习 分布式计算 Java
Hbase入门(二)——安装与配置
本文讲述如何安装,部署,启停HBase集群,如何通过命令行对Hbase进行基本操作。 并介绍Hbase的配置文件。 在安装前需要将所有先决条件安装完成。
539 0
Hbase入门(二)——安装与配置
|
1月前
|
存储 Java Linux
Linux安装HBase的详细教程及常用方法
Linux安装HBase的详细教程及常用方法
106 1
|
4月前
|
Shell 分布式数据库 Apache
HBase 安装
HBase 安装
44 0
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
82 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
8月前
|
监控 大数据 分布式数据库
|
8月前
|
存储 分布式计算 Hadoop
Hadoop之Hbase安装和配置
Hadoop之Hbase安装和配置
754 0
|
9月前
|
存储 Java Shell
分布式数据库HBase的常用操作的基本Shell命令的状态/版本/Help命令
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的状态/版本/Help命令。
349 0