hbase shell无法使用:ERROR:KeeperErrorCode = NoNode for / hbase / master

时间:2018-05-08 08:49:18

标签: hbase apache-zookeeper master

我尝试在__str__模式下安装hbase。由于这个问题,我现在不能使用hbase。 pseudo-distributed shell中的每个代码都无法运行,并且所有代码都会收到此错误提示:

  

错误:KeeperErrorCode = / hbase / master

的NoNode

在我的ubuntu 17中我安装了hbase,我确信我的hadoop位置与我的hdfs匹配:

hbase

这是 hbase-site.xml 中的hdfs://localhost:9000

hbase-config

core-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> <property> <name>dfs.replication</name> <value>1</value> </property>

hdfs-config

我可以<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>A base for other tmp dir</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> 开始,但过了一会儿,hbase已经消失了:

HMaster

登录6737 DataNode 7749 HRegionServer 6582 NameNode 6968 SecondaryNameNode 7529 HQuorumPeer 9148 Jps ,可以看到日志:

  

无法激活:过程WAL依赖于在组件故障期间hsync正常运行的能力,但底层文件系统不支持这样做。请检查'hbase.procedure.store.wal.use.hsync'的配置值以设置所需的健壮性级别,并确保'hbase.wal.dir'的配置值指向可提供它的FileSystem挂载。 (自2秒前开始)

3 个答案:

答案 0 :(得分:1)

在使用HBase独立模式时,我也遇到了相同的问题。 jps能够列出HMaster服务,但是当我启动'hbase shell'并发出任何命令时,它会抛出ERROR: KeeperErrorCode = NoNode for /hbase/master并且HMaster服务突然终止。因此,在伪分布式模式下使用Hbase。

我正在使用-

1: Hadoop - 3.2.0

2: Zookeeper - 3.5.5

3: HBase - 2.2.0

1:我更改了hbase-env.sh中的以下属性,因为我想使用单独的ZK服务而不是在HBase中嵌入一个服务-

# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false

2:更改了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>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
  </property>
</configuration>

3:start-all.sh 4:zkServer.sh start 5:start-hbase.sh

5:jps能够列出HMaster和HRegionServer

madhuri@**-****:$ jps
10688 HRegionServer
4194 DataNode
4019 NameNode
10532 HMaster
4468 SecondaryNameNode
10309 QuorumPeerMain
4902 NodeManager
11162 Main
11740 Jps
4718 ResourceManager
madhuri@**-****:$ 

6:查询HBase:

hbase(main):003:0> list
TABLE                                                                           
mytable                                                                         
1 row(s)
Took 0.0138 seconds                                                             
=> ["mytable"]
hbase(main):004:0> scan 'mytable'
ROW                   COLUMN+CELL                                               
 first                column=cf:message, timestamp=1565095359573, value=hello HB
                      ase                                                       
 second               column=cf:foo, timestamp=1565095375215, value=0           
 third                column=cf:bar, timestamp=1565095394172, value=3.14159     
3 row(s)
Took 0.0186 seconds                                                             
hbase(main):005:0> 

**如果一切顺利,但hbase shell仍需要更长的时间才能返回结果,则请转到ZK目录-我的是/tmp/zookeeper(它存在于zoo.cfg文件中),然后删除所有内容并尝试重新启动上述服务。 ZK似乎有些问题。

希望它将对某人有所帮助!

答案 1 :(得分:0)

确保您的 hbase-site.xml 文件中包含以下两部分。 当我遇到相同的问题时,解决这些问题对我来说解决了这个问题:

<configuration>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
  </property>
</configuration>

如果仍然不能解决问题,请注意hbase日志文件中的条目。

答案 2 :(得分:0)

就我而言,我收到此“ ERROR: KeeperErrorCode = NoNode for /hbase/master”是因为HMaster进程未运行。如您所述,您的HMaster也没有运行。

在您的hbase-site.xml中看不到hbase.zookeeper.quorum属性。添加并检查。

<property>
<name>hbase.zookeeper.quorum</name>
<value>hdp-master-1</value>
</property>

如果 HMaster 仍然无法启动,则在$HBASE_HOME/logs目录中检查hbase-***-master.log是否存在特定错误。

就我而言,有两个原因,

第一:

WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out

我通过在hbase-site.xml中用“我的计算机的主机名”替换“本地主机”来解决。从这个答案

第二个:

WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out

这是因为hbase-site.xml中的hdfs端口与hadoop的core-site.xml中的hdfs端口不同。

回答here