Hbase Shell启动失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase Shell启动失败相关的知识,希望对你有一定的参考价值。
最近一个新部署一个gateway,用户在执行hbase shell的方式连接hbase,报错
[[email protected] lib]$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hadoop/hbase-1.1.3/lib/kylin-jdbc-1.5.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/hbase-1.1.3/lib/kylin-job-1.5.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/hbase-1.1.3/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/hadoop-2.7.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.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] NativeException: java.io.IOException: java.lang.reflect.InvocationTargetException initialize at /usr/local/hadoop/hbase-release/lib/ruby/hbase/hbase.rb:42 (root) at /usr/local/hadoop/hbase-release/bin/hirb.rb:118
经过百度,解决问题。是由于testuesr对hbase.tmp.dir设置的路径,没有读写权限。添加权限即可。(实际上是我根本就没有创建这个路径。由于是gateway,只是利用一下hbase的软件和配置文件作为客户端。也不启动它。自然也就没有想到这些路径还会影响到hbase shell的使用。)
Unable to start hbase shell due to java.io.IOException: java.lang.reflect.InvocationTargetException SYMPTOM: When attempting to execute "hbase shell" as a non-root / non-hbase user, hbase shell fails with the following exception: [[email protected] ~]$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/hdp/2.3.4.0-3485/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/hdp/2.3.4.0-3485/zookeeper/lib/slf4j-log4j12-1.6.1.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] NativeException: java.io.IOException: java.lang.reflect.InvocationTargetException initialize at /usr/hdp/2.3.4.0-3485/hbase/lib/ruby/hbase/hbase.rb:42 (root) at /usr/hdp/2.3.4.0-3485/hbase/bin/hirb.rb:131 ROOT CAUSE: The user of hbase shell needs read and write permissions on the hbase tmp directory configured by the hbase.tmp.dir property in hbase-site.xml. To verify your hbase tmp directory configuration settings: [[email protected] ~]# grep -C2 "hbase.tmp.dir" /etc/hbase/conf/hbase-site.xml <property> <name>hbase.local.dir</name> <value>${hbase.tmp.dir}/local</value> </property> -- <property> <name>hbase.tmp.dir</name> <value>/tmp/hbase-${user.name}</value> </property> RESOLUTION: Ensure the users of hbase shell have read and write permissions for hbase.tmp.dir
参考链接:
https://community.hortonworks.com/content/supportkb/150642/unable-to-start-hbase-shell-due-to-javaioioexcepti.html
以上是关于Hbase Shell启动失败的主要内容,如果未能解决你的问题,请参考以下文章
Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误
根据下面给出的表格,用Hbase Shell模式设计学生表格。
HBase学习01(HBase入门及HBase Shell简单操作)
HBase学习01(HBase入门及HBase Shell简单操作)