0

疑似分散モードでhdfsインスタンスを実行していて、同じサーバー上で別のhbaseインスタンスを接続しようとしました。hadoopのログは問題ありませんが、hbaseのログで常に接続障害が発生します

================================================== ================================

2012-05-01 10:49:07,212 INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181
2012-05-01 10:49:07,213 WARN org.apache.zookeeper.ClientCnxn: Session 0x13708dc552d0001 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)

2012-05-01 10:49:08,882 INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181
2012-05-01 10:49:08,882 WARN org.apache.zookeeper.ClientCnxn: Session 0x13708dc552d0001 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)

================================================== ================================

core-site.xml@hadoopの構成

<configuration>

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

</configuration>

hbase-site.xml@hbaseの構成

<configuration>
<property>
   <name>hbase.rootdir</name>
   <value>hdfs://localhost:9000/hbase</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>
</configuration>

また、ローカルホストをサーバーの実際のIPに置き換えようとしましたが、同じエラーが発生しました。

4

4 に答える 4

1
  • まず、hbaseマスターノードが実行されていることを確認する必要があります。これを使用jpsして確認できます。

start-hbase.sh実行されていない場合は、コマンドまたはで実行できますhbase master start。次に、次のような他のコマンドでステータスを確認しますnetstat -an | grep 9000

  • 次に、前の方法が機能しない場合は、iptablesやSELinuxなどのファイアウォール構成を確認してください。sudo iptables -Liptablesの構成を確認するために使用します。sudo service iptables stopredhatベースのLinuxシステムでは、コマンドによってiptablesを無効にできます。

getenforceSElinuxがモードになっているかどうかを確認するために使用しenforcingます。

  • 第三に、例えば、システム構成などを確認しますssh
于 2012-05-01T21:01:34.797 に答える
1

$ HBASE_HOME / bin / lib / hadoop-{{version}}core.jarのコアhadoopjarを、私が実行していた$ HADOOP_HOME /hadoop-{{version}}core.jarのコアhadoopjarに置き換える必要があります。正常に動作していたhbase0.90-xxxからhbase0.92をインストールしようとしたときに同じ問題が発生し、hbase-env.shとhbase-site.xmlを古いhbaseから新しいhbaseに置き換えましたが、hadoopコアjarをコピーするのを忘れました。

于 2012-05-06T16:48:27.083 に答える
1

構成にlocalhostが表示されている場合、私は常に疑わしいです。また、ローカルホストを使用すると、実行しているホスト以外のホストから疑似分散システムからサービスにアクセスすることが非常に困難になります(不可能になります)。

IPアドレスを試したと言っていましたが、ノードが実際に考えているIPアドレスを確認することをお勧めします。

起動時からの動物園飼育係のログをチェックし、動物園がどのIPアドレスで「考えている」かを確認します。次のような行があるはずです:

2012-01-31 09:32:46,083 - INFO  [main:Environment@97] - Server environment:host.name=ip-10-8-127-58.ec2.internal

次に、host.nameの値を、ホスト名を必要とするすべてのHadodop、HBase、Hive、Zookeeperなどの構成ファイルのすべての場所の値として使用します(疑似分散モードであると言ったのと同じマシン上にあると仮定します) )。

また、hbase-site.xmlにhbase.zookeeper.quorum設定を表示しませんでした。ここで、hbaseは飼育係の住所を知ることができます。

  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>ip-10-8-127-58.ec2.internal</value>
  </property>
于 2012-05-07T01:34:08.980 に答える
0

Hbaseはzookeeperクォーラムを見つけることができないと思います。hbase-site.xmlでhbase.zookeeper.quorumプロパティを設定する必要があります。また、クラスパスが適切に設定されているかどうかを確認し、このドキュメントを確認してくださいhttp://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/package-summary.html#classpath

于 2012-05-01T15:33:04.973 に答える