1

HBase にデータを挿入する Pig Script を実行しているときに、次のエラーが発生しました。

2013-10-25 14:57:03,147 [main-SendThread(localhost:2181)] INFO 
org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2013-10-25 14:57:03,147 [main-SendThread(localhost:2181)] INFO  org.apache.zookeeper.ClientCnxn - Socket connection established to localhost/127.0.0.1:2181, initiating session
2013-10-25 14:57:03,169 [main-SendThread(localhost:2181)] INFO  org.apache.zookeeper.ClientCnxn - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x41ead7bb150092, negotiated timeout = 180000

また、スレーブログを見ると、マスターへの接続を確立できないと表示されますが、マスターは接続が正常に確立されたと言っています。以下は両方のログです。

マスターログ:

zookeeper.ZooKeeper: Initiating client connection, connectString=slave:2181,hadoop-master:2181,ubuntu:2181 sessionTimeout=180000 watcher=hconnection
13/10/24 19:51:56 INFO zookeeper.ClientCnxn: Opening socket connection to server slave:2181. Will not attempt to authenticate using SASL (unknown error)
13/10/24 19:51:56 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 104744@hadoop-master
13/10/24 19:51:56 INFO zookeeper.ClientCnxn: Socket connection established to slave:2181, initiating session
13/10/24 19:51:56 INFO zookeeper.ClientCnxn: Session establishment complete on server slave:2181, sessionid = 0x141ead77c250002, negotiated timeout = 180000

スレーブログ

2013-10-24 19:51:32,174 INFO org.apache.zookeeper.server.quorum.FastLeaderElection: New election. My id =  1, proposed zxid=0x80000002a
2013-10-24 19:51:32,180 WARN org.apache.zookeeper.server.quorum.QuorumCnxManager: Cannot open channel to 0 at election address hadoop-master:3888
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)

以下は私の構成です:

hbase-env.sh

export HBASE_MANAGES_ZK=true

hbase-site.xml

<configuration>
    <property>
        <name>hbase.master</name> 
        <value>hadoop-master:60000</value>
        <description>
            The host and port that the HBase master runs at.
            A value of 'local' runs the master and a regionserver in a single process.
        </description>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop-master:54310/hbase</value>
        <description>
            The directory shared by RegionServers.
        </description>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
        <description>
            The mode the cluster will be in. Possible values are
            false: standalone and pseudo-distributed setups with managed Zookeeper
            true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
        </description>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
        <description>
            Property from ZooKeeper's config zoo.cfg.
            The port at which the clients will connect.
        </description>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop-master,slave,ubuntu</value>
        <description>
            Comma separated list of servers in the ZooKeeper Quorum.
            For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
            By default this is set to localhost for local and pseudo-distributed modes
            of operation. For a fully-distributed setup, this should be set to a full
            list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
            this is the list of servers which we will start/stop ZooKeeper on.
        </description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>
            Default block replication.
            The actual number of replications can be specified when the file is created.
            The default is used if replication is not specified in create time.
        </description>
    </property>
</configuration>

コマンド jps を入力すると、次の出力が得られます。

マスターで:

104744 HMaster
91841 JobTracker
80184 TaskTracker
91475 DataNode
91222 NameNode
105062 HRegionServer
91747 SecondaryNameNode
104666 HQuorumPeer

スレーブ時:

11533 HQuorumPeer
2444 SecondaryNameNode
5970 TaskTracker
11756 HRegionServer
4

1 に答える 1

1

これは、Pig スクリプトの実行時に HBase 構成がクラスパスにないことが原因である可能性があります。試してみることができることの 1 つは、Pig スクリプトで Zookeeper 接続設定を設定して、正しいインスタンスに接続するかどうかを確認することです。その場合は、スクリプトを起動する前に HBase 構成をクラスパスに追加できます。

于 2013-10-28T21:54:58.510 に答える