簡體   English   中英

Hbase 錯誤“錯誤:KeeperErrorCode = NoNode for /hbase/master”

[英]Hbase Error "ERROR: KeeperErrorCode = NoNode for /hbase/master"

在 hbase shell 中執行任何命令時,我在 hbase shell 中收到以下錯誤“錯誤:KeeperErrorCode = NoNode for /hbase/master”。

啟動 HBASE :

    HOSTCHND:hbase-2.0.0 gvm$ ./bin/start-hbase.sh
    localhost: running zookeeper, logging to /usr/local/Cellar/hbase-2.0.0/bin/../logs/hbase-gvm-zookeeper-HOSTCHND.local.out
    running master, logging to /usr/local/Cellar/hbase-2.0.0/logs/hbase-gvm-master-HOSTCHND.local.out
    : running regionserver, logging to /usr/local/Cellar/hbase-2.0.0/logs/hbase-gvm-regionserver-HOSTCHND.local.out

在 HBASE SHELL 中檢查狀態時:

    hbase(main):001:0> status

    ERROR: KeeperErrorCode = NoNode for /hbase/master

    Show cluster status. Can be 'summary', 'simple', 'detailed', or 'replication'. The
    default is 'summary'. Examples:

    hbase> status
    hbase> status 'simple'
    hbase> status 'summary'
    hbase> status 'detailed'
    hbase> status 'replication'
    hbase> status 'replication', 'source'
    hbase> status 'replication', 'sink'

   Took 9.4096 seconds                                                             
   hbase(main):002:0> 

hbase-site.xml

<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
</property>
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/Cellar/hbase-2.0.0/hbasestorage/zookeeper</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
</property>
</configuration>

請讓我知道為什么在執行 hbase 命令時會發生此錯誤?

在我的情況下,我收到了這個“ ERROR: KeeperErrorCode = NoNode for /hbase/master ”,因為HMaster進程沒有運行。

jps命令檢查。

hdusr@hdp-master-1:$ jps
27504 Main
32755 DataNode
23316 HQuorumPeer
27957 Jps
646 SecondaryNameNode
27097 HMaster
23609 HRegionServer
1562 Master
1722 Worker
911 ResourceManager
32559 NameNode
1167 NodeManager

如果您沒有看到上面列表中的HMaster 進程,那么這就是ERROR: KeeperErrorCode = NoNode. 在 hbase 外殼中。

$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 中用“我的機器的主機名”替換“localhost”來解決這個問題。 從這個答案

第二 :

    ERROR [master/spark-hdp-master-1:16000:becomeActiveMaster] master.HMaster: Failed to become active masterorg.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled.  Available:[TOKEN]

這是因為 hbase-site.xml 中的 hdfs 端口與 hadoop 的 core-site.xml 中的不同。

將這些配置替換或添加到 hbase 目錄的 conf 文件夾中的 hbase-site.xml 文件中,然后重新運行“hbase shell”命令,然后重新運行“list”命令以查看存在的表。

<?xml version="1.0" encoding="utf-8" ?>

<!--Keeper Error fix-->
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:8020/hbase</value>
    </property>
        <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
        <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2182</value>
    </property>
            <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/var/lib/hbase/zookeeper</value>
    </property>
</configuration>

首先,確保已經在 hosts 文件中設置了 IP 和主機名映射。

二、修改HBase臨時目錄位置。 臨時目錄數據將定期清空。 臨時目錄的默認值在/tmp上,在hbase-site.xml中更改它們

<property>
        <name>hbase.tmp.dir</name>
        <value>/hbase/tmp</value>
        <description>Temporary directory on the local filesystem.</description>
</property>

如果它不起作用。 清理 hbase 數據目錄,同時清理 zookeeper 中的元數據,再次重新啟動 hbase。

更重要的是,檢查您的 ntp 和防火牆。

我知道它與火花無關,但我遇到了以下錯誤;

引起:java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/meta-region-server

引起:org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/meta-region-server

引起:org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/hbasei

設置hbase.rootdir配置解決了我在創建 HBaseContext 時遇到的問題;

val config = HBaseConfiguration.create
config.set("hbase.zookeeper.quorum", "addresses")
config.setInt("hbase.zookeeper.property.clientPort", port)

config.set("hbase.rootdir","/apps/hbase/data") // adding this one resolves my problems

val hbaseContext = new HBaseContext(sc, config)

因此,您可以嘗試將該配置添加到 hbase-site.xml 中。

面臨類似的問題:請按照以下步驟操作

人們也可能面臨其他問題。 在下面提到它們”

  1. 還設置 zookeeper: https ://www.tutorialspoint.com/zookeeper/zookeeper_installation.htm
  2. 可能會遇到權限問題,因此將 chmod -R 777 分配給 /tmp/zookeeper、/usr/local/var/hbase、/usr/local/Cellar/hbase
  3. 在 bin/zoo.cfg 中添加 admin.enableServer=false 以避免地址綁定異常
  4. 嘗試在沒有 sudo 的情況下同時運行 HBase 和 zookeeper。

如果它在 hbase 按預期運行時突然發生,沒有任何關於錯誤的線索,然后嘗試刪除 hbase-tmp-dir (hbase.tmp.dir),刪除 zookeeper 的元數據,然后重新啟動 hbase 和 zookeeper 可能會對您有所幫助。

同步時間對我有用。

  1. less ../logs/hbase-hdoop-master-hadoop-master.log中檢查原因
  2. 如果你看到像這樣的線
Exception: Server hdw3.example.com,16020,1501570274049 has been rejected; Reported time is too far out of sync with master. Time difference of 311432ms
 > max allowed of 30000ms
 at org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:388)
 at org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:262)
 at org.apache.hadoop.hbase.master.MasterRpcServices.regionServerStartup(MasterRpcServices.java:348)
  1. 使用可用工具 (ntpd/chrony/timectls) 運行時更新。 在 ubuntu 上運行:
timedatectl

應該顯示如圖所示的輸出。 等待一分鍾,然后再次運行該命令。

              Local time: Mon 2022-06-13 17:48:20 U…
          Universal time: Mon 2022-06-13 17:48:20 U…
                RTC time: Sat 2022-06-11 02:09:42   
               Time zone: Etc/UTC (UTC, +0000)      
System clock synchronize… no                        
             NTP service: inactive                  
         RTC in local TZ: no      

你會得到這個輸出:

               Local time: Mon 2022-06-13 17:49:54 UTC
           Universal time: Mon 2022-06-13 17:49:54 UTC
                 RTC time: Mon 2022-06-13 17:49:19    
                Time zone: Etc/UTC (UTC, +0000)       
System clock synchronized: yes                        
              NTP service: n/a                        
          RTC in local TZ: no      

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM