1

Hadoop と HBase を使用してテスト プロジェクトを行っています。現在、クラスターには、Windows マシンでホストされている 2 つの Ubuntu VM があります。

次の HBase Java API 構成を使用して、PUT、QUERY、および DELETE 操作をリモートで (ホスト マシンで) 実行できます。

config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "192.168.56.90");  
config.set("hbase.zookeeper.property.clientPort", "2222");

上記と同じ構成で Windows で HBase MapReduce ジョブを実行しようとすると、次のエラーが発生します。

    13/03/24 06:11:03 ERROR security.UserGroupInformation: PriviledgedActionException as:Joel cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Joel\mapred\staging\Joel290889388\.staging to 0700
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Joel\mapred\staging\Joel290889388\.staging to 0700 

Web で読んだことによると、Windows で MapReduce ジョブを実行すると問題があるようです。そこで、「java - jar MR.jar」を使って Linux で MapReduce ジョブを実行してみました。

Linux で Zookeeper に接続できません。理由は不明ですが、Zookeeper のホストとポートがクライアント側でリセットされています

13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Client environment:os.version=3.5.0-23-generic
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Client environment:user.name=hduser
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Client environment:user.home=/home/hduser
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Client environment:user.dir=/home/hduser/testes
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.56.90:2222 sessionTimeout=180000 watcher=hconnection
13/03/24 05:59:33 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 11552@node01
13/03/24 05:59:33 INFO zookeeper.ClientCnxn: Opening socket connection to server node01/192.168.56.90:2222. Will not attempt to authenticate using SASL (unknown error)
13/03/24 05:59:33 INFO zookeeper.ClientCnxn: Socket connection established to node01/192.168.56.90:2222, initiating session
13/03/24 05:59:33 INFO zookeeper.ClientCnxn: Session establishment complete on server node01/192.168.56.90:2222, sessionid = 0x13d9afaa1a30006, negotiated timeout = 180000
13/03/24 05:59:33 INFO client.HConnectionManager$HConnectionImplementation: Closed zookeeper sessionid=0x13d9afaa1a30006
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Session: 0x13d9afaa1a30006 closed
13/03/24 05:59:33 INFO zookeeper.ClientCnxn: EventThread shut down
13/03/24 05:59:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
13/03/24 05:59:33 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
13/03/24 05:59:33 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/03/24 05:59:33 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 11552@node01
13/03/24 05:59:33 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
13/03/24 05:59:33 WARN zookeeper.ClientCnxn: Session 0x0 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:692)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)

上記のログから判断すると、node01:2222 に正しく接続されています (node01 は 192.168.56.90 に解決されます)。しかし、何らかの理由で localhost:2181 に変更され、接続拒否エラーが発生します。

この問題を修正して、Zookeeper が実行されているのと同じマシンで Linux で MR ジョブを実行するにはどうすればよいですか?

バージョン: Hbase 0.94.5 / Hadoop 1.1.2

ありがとう。

4

1 に答える 1

1

hbase.master も設定する必要がある場合があります。

また、/etc/hosts ファイルを調べて、それが正しいかどうかを確認してください。その接続情報を使用して飼育係に telnet できますか?

config.set("hbase.zookeeper.quorum", "192.168.56.90");  
config.set("hbase.zookeeper.property.clientPort", "2222");
config.set("hbase.master", "some.host.com:60000")
于 2013-03-28T21:19:10.963 に答える