我尝试在__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秒前开始)
答案 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。