web-dev-qa-db-ja.com

HBASEシェルを使用している場合、「エラー:ZooKeeperからマスターアドレスを取得できません。znodeデータ== null」を取得します

Hadoop2.2.0とHbase0.98.0をインストールしましたが、次のようになります。

$ ./bin/start-hbase.sh 

$ ./bin/hbase Shell

2.0.0-p353 :001 > list

それから私はこれを得ました:

ERROR: Can't get master address from ZooKeeper; znode data == null

なぜこのエラーが発生するのですか?別の質問:baseを実行する前に./sbin/start-dfs.sh./sbin/start-yarn.shを実行する必要がありますか?

また、./sbin/start-dfs.shおよび./sbin/start-yarn.shの用途は何ですか?

Conf docの一部を次に示します。

hbase-sites.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://127.0.0.1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>hbase.tmp.dir</name>
        <value>/Users/Apple/Documents/tools/hbase-tmpdir/hbase-data</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/Users/Apple/Documents/tools/hbase-zookeeper/zookeeper</value>
    </property>
</configuration>

core-sites.xml

<configuration>

  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
      <description>The name of the default file system.</description>
  </property>

  <property>
      <name>hadoop.tmp.dir</name>
      <value>/Users/micmiu/tmp/hadoop</value>
      <description>A base for other temporary directories.</description>
  </property>

  <property>
      <name>io.native.lib.available</name>
      <value>false</value>
  </property>

</configuration>

yarn-sites.xml

<configuration>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.Apache.hadoop.mapred.ShuffleHandler</value>
    </property>

</configuration>
12
Rickie Lau

スタンドアロンHBaseのZookeeper管理に入らずにHBaseを実行する場合は、hbase-site.xmlという名前のプロパティブロックを除くhbase.rootdirからすべてのpropertyブロックを削除します。

/bin/start-hbase.shを実行します。 HBaseには、/bin/start-hbase.shの実行時に開始される独自のZookeeperが付属しています。これは、初めて物事を回避しようとする場合に十分です。後でZookeeperの分散モード構成を配置できます。

/sbin/start-dfs.shの値はhbase.rootdirhdfs://127.0.0.1:9000/hbaseに設定されているため、HBaseを実行するにはhbase-site.xmlを実行するだけです。 file:///some_location_on_local_filesystemを使用してローカルのファイルシステム上のある場所に変更する場合、/sbin/start-dfs.shを実行する必要さえありません。

hdfs://127.0.0.1:9000/hbaseはHDFS上の場所であり、/sbin/start-dfs.shはHDFSファイルシステムにアクセスするための基礎となるAPIを提供するnamenodeとdatanodeを開始します。 Yarnについては、 http://hadoop.Apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html をご覧ください。

13
Chandra kant

これは、vmまたはホストマシンがスリープ状態になった場合にも発生する可能性があり、Zookeeperはライブのままになりません。 VMを再起動すると、問題が解決するはずです。

6
100rabh

Zookeeperを起動してからHbase-Shellを実行する必要があります

{HBASE_HOME}/bin/hbase-daemons.sh {start,stop} zookeeper

また、hbase-env.shでこのプロパティを確認することもできます。

# Tell HBase whether it should manage its own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

ソース-Zookeeper を参照してください

3
Ronak Patel

1つの簡単な解決策は、hbaseを再起動することです。

1) Stop-hbase.sh
2) Start-hbase.sh
2
Reegan Ochora

まったく同じエラーが発生しました。 Linuxファイアウォールが接続をブロックしていました。 Telnet経由でポートをテストできます。簡単な修正方法は、ファイアウォールをオフにして、それが修正されるかどうかを確認することです。

すべてのノードでファイアウォールを完全に無効にします。注:このコマンドは、マシンの再起動後は存続しません。

systemctl stop firewalld

長期的な修正は、hbaseポートを許可するようにファイアウォールを構成する必要があることです。

ご使用のhbaseのバージョンは異なるポートを使用する場合があります: https://issues.Apache.org/jira/browse/HBASE-1012

1
Chris

Hbase Shellからの出力は非常に高レベルであるため、多くの設定ミスがこのメッセージを引き起こします。自分でデバッグできるようにするには、hbaseのログインを調べた方がはるかに良いでしょう

/var/log/hbase 

問題の根本原因を突き止めるため。

私も同じ問題を抱えていました。私にとって、私の根本的な原因は、hbase-masterと競合するポート番号を持つhadoop-kmによるものでした。どちらもポート16000を使用しているため、hbase Shellを起動してもHMasterは起動しませんでした。それを修正した後、私のhbaseは機能しました。

繰り返しになりますが、kmsポートの競合が根本原因ではない可能性があります。/var/log/hbaseを調べて根本原因を見つけることを強くお勧めします。

0
YufengJ

私の場合、hbaseの実行で同じエラーが発生しました-hbase-site.xmlにzookeeperプロパティを含めずに上記のエラーメッセージを取得しました(Apache hbaseガイドに基づいて、rootdirとdistributedの2つだけが必須です) )。

また、実際にHregionサーバーとHmasterが正しく稼働していないことを確認するjpsコマンドの出力をトレースすることもできます。

(リセットのように)停止して開始した後、これら2つを実行し、hbaseを適切に実行できました。

0
r poon

vMWareまたは仮想ボックスで発生している場合は、コマンドinit1root権限があることを確認してくださいそして、それが役立つことを願って再試行してください:)

hbaseシェル

0