HBase - fs关闭钩子的抑制失败

时间:2013-10-25 08:00:32

标签: java hadoop intellij-idea hbase

我试图通过运行HMaster类来启动IDEA中的HBase,但是我收到了这个错误:

java.lang.RuntimeException: Failed suppression of fs shutdown hook: Thread[Thread-8,5,main]
    at org.apache.hadoop.hbase.regionserver.ShutdownHook.suppressHdfsShutdownHook(ShutdownHook.java:196)
    at org.apache.hadoop.hbase.regionserver.ShutdownHook.install(ShutdownHook.java:83)
    at org.apache.hadoop.hbase.util.JVMClusterUtil.startup(JVMClusterUtil.java:191)
    at org.apache.hadoop.hbase.LocalHBaseCluster.startup(LocalHBaseCluster.java:420)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:149)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:104)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2100)

FYI / etc / hosts文件仅包含

  

127.0.0.1 - 机器名称

这是core-site.xml

<configuration>
   <property>
       <name>fs.default.name</name>
       <value>hdfs://localhost:8020</value>
   </property>

   <property>
       <name>hadoop.tmp.dir</name>
       <value>/home/ubuntu/Desktop/hdfs/tmp</value>
   </property>
</configuration>

HBase的-site.xml中

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>/usr/lib/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/lib/zookeeper</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
 </property>
</configuration>

4 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,但是在独立模式下。以下是我解决问题的方法:

  1. 检查"hostname"和&#34;主机名-f&#34;的输出,确保 输出命令&#34;主机名&#34;只包含主机名 &#34;主机名-f&#34;包含FQDN。如果没有,请先解决此问题。
  2. 我使用命令&#34; sudo bin/start-hbase.sh&#34;
  3. 以root身份运行它

    我仍然不知道此问题的根本原因,但在我采取上述步骤后,Hbase实例正在运行。希望它有所帮助!

答案 1 :(得分:0)

当针对Hadoop 1编译的HBase在类路径上具有Hadoop 2 jar时,会发生此错误。进入这种情况的一种方法是将Hadoop罐子转储到lib /文件夹中,另一种方法是使用外部工具将这些罐子放在系统的类路径上,HBase会将其取出。

这很容易验证,只需运行bin/hbase classpath即可将其打印出来。

在独立模式下,或者当Zookeeper由HBase管理时,它也会在日志的开头打印在这样的行上:

INFO org.apache.zookeeper.server.ZooKeeperServer: Server environment:java.class.path=

通过删除Hadoop 2罐解决。

答案 2 :(得分:0)

这是一个简单的错误。这很容易验证,只需运行bin / hbase类路径,它就会将其打印出来。如果存在hadoop2,那么它将无法在独立模式下工作。所以删除那些或tar那些文件夹位置然后尝试。

答案 3 :(得分:-1)

在版本0.98的bin / hbase中,有一个标志     HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP

设置以下环境变量对我有用。

export  HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true