2

これは、疑似分散モードと分散モードで発生しています。HBase を開始しようとすると、最初は 3 つのサービス (マスター、リージョン、クォーラムピア) がすべて開始されます。しかし、1 分以内にマスターが停止します。ログでは、これはトレースです -

2013-05-06 20:10:25,525 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 0 time(s).
2013-05-06 20:10:26,528 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 1 time(s).
2013-05-06 20:10:27,530 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 2 time(s).
2013-05-06 20:10:28,533 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 3 time(s).
2013-05-06 20:10:29,535 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 4 time(s).
2013-05-06 20:10:30,538 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 5 time(s).
2013-05-06 20:10:31,540 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 6 time(s).
2013-05-06 20:10:32,543 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 7 time(s).
2013-05-06 20:10:33,544 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 8 time(s).
2013-05-06 20:10:34,547 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 9 time(s).
2013-05-06 20:10:34,550 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.net.ConnectException: Call to <master/master_ip>:9000 failed on connection exception: java.net.ConnectException: Connection refused
        at org.apache.hadoop.ipc.Client.wrapException(Client.java:1179)
        at org.apache.hadoop.ipc.Client.call(Client.java:1155)
        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
        at $Proxy9.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398)
        at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384)
        at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:132)
        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:259)
        at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:220)
        at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1611)
        at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:68)
        at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1645)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1627)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:183)
        at org.apache.hadoop.hbase.util.FSUtils.getRootDir(FSUtils.java:363)
        at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:86)
        at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:368)
        at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:301)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:592)
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:519)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:484)
        at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:468)
        at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:575)
        at org.apache.hadoop.ipc.Client$Connection.access$2300(Client.java:212)
        at org.apache.hadoop.ipc.Client.getConnection(Client.java:1292)
        at org.apache.hadoop.ipc.Client.call(Client.java:1121)
        ... 18 more

成功せずにこれを修正するために取った手順 - 分散モードから疑似分散モードにダウングレードしました。同じ問題。- スタンドアロン モードを試しました - うまくいきませんでした - Hadoop と hbase の両方に同じユーザー (hadoop) を使用しました。Hadoop 用にパスワードなしの ssh をセットアップします。- 同じ問題。- /etc/hosts ファイルを編集し、localhost/servername と 127.0.0.1 を、SO とさまざまなソースを参照する実際の IP アドレスに変更しました。まだ同じ問題。- サーバーを再起動しました

ここにconfファイルがあります。

hbase-site.xml

<configuration>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://<master>:9000/hbase</value>
        <description>The directory shared by regionservers.</description>
</property>

<property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
</property>

<property>
        <name>hbase.zookeeper.quorum</name>
        <value><master></value>
</property>

<property>
        <name>hbase.master</name>
        <value><master>:60000</value>
        <description>The host and port that the HBase master runs at.</description>
</property>

<property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>The replication count for HLog and HFile storage. Should not be greater than HDFS datanode count.</description>
</property>

</configuration>

/etc/hosts ファイル

127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 .

ここで何が間違っていますか?

Hadoop バージョン - Hadoop 0.20.2-cdh3u5 HBase バージョン - バージョン 0.90.6-cdh3u5

4

2 に答える 2

5

構成ファイルを見ると、構成ファイルで実際のホスト名を使用していると思います。その場合は、マシンの IP とともにホスト名を /etc/hosts ファイルに追加します。また、Hadoop の core-site.xml 内のホスト名と一致していることを確認してください。適切な名前解決は、HBase が適切に機能するために不可欠です。

問題が解決しない場合は、ここに記載されている手順に従ってください。手順を詳しく説明しようとしましたが、すべての手順を注意深く実行すれば実行できることを願っています。

HTH

于 2013-05-06T15:43:29.480 に答える
-1

擬似分散モードを使用しようとしていると思います。3つのことを修正するまで、同じエラーが発生していました:

  1. ローカルの /etc/hosts ファイル

$ 猫 /etc/hosts

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
172.20.x.x  my.hostname.com
  1. ホスト名を指す代わりに、hbase-env.sh で localhost を指す

  2. クラスパスを修正します A. Hadoop がクラスパスにあることを確認します (hbase-env.sh 経由)

    export JAVA_HOME=Java ホームへのパス export HADOOP_HOME=hadoop ホームへのパス export HBASE_HOME=hbase ホームへのパス

    export HBASE_CLASSPATH=hbase home/conf へのパス:hadoop home/conf へのパス

B. プログラムを実行するとき、HBase から次の bash スクリプトを編集しました。 The Definitive Guide (bin/run.sh) $ grep -v # bin/run.sh

bin=`dirname "$0"`
bin=`cd "$bin">/dev/null; pwd`

  echo "usage: $(basename $0) <example-name>"
  exit 1;
fi

MVN="mvn"
if [ "$MAVEN_HOME" != "" ]; then
  MVN=${MAVEN_HOME}/bin/mvn
fi

CLASSPATH="${HBASE_CONF_DIR}"

if [ -d "${bin}/../target/classes" ]; then
  CLASSPATH=${CLASSPATH}:${bin}/../target/classes
fi

cpfile="${bin}/../target/cached_classpath.txt"
if [ ! -f "${cpfile}" ]; then
  ${MVN} -f "${bin}/../pom.xml" dependency:build-classpath -Dmdep.outputFile="${cpfile}" &> /dev/null
fi
CLASSPATH=`hbase classpath`:${CLASSPATH}:`cat "${cpfile}"`

JAVA_HOME=your path to java home
JAVA=$JAVA_HOME/bin/java
JAVA_HEAP_MAX=-Xmx512m

echo "Classpath is $CLASSPATH"
"$JAVA" $JAVA_HEAP_MAX -classpath "$CLASSPATH" "$@"

私がMacを使用していることは注目に値します。これらの手順は Linux でも機能すると思います。

于 2013-09-01T14:31:19.693 に答える