2012-02-03 11 views
8

Cloudera Managerを使用して構成されたCDH3u2を使用する8ノードクラスタがあります。唯一の飼育係のインスタンスを実行する専用のマスターノードがあります。マスターノードから実行されたローカルハープを実行するようにハイブを設定すると、HBaseからデータを取得するのに問題はありません。ハイブ経由で分散マップ/縮小を実行すると、スレーブノードが飼い主に接続するときに次のエラーが発生します。ハイブとHBaseの統合 - 飼い葉桶のセッションが直ちに終了する

HBaseはZooKeeperに接続できますが、接続はすぐに終了します。これは、サーバーに接続が多すぎるという兆候となります(デフォルトは30です)。

最大接続を高く設定しようとしました(制限を解除しようとしました)。これは非常に少数のユーザーしかいない開発クラスタです。問題は接続が多すぎるということではありません(私は./​​zkCliを使用してスレーブノードからZookeeperに接続できます)。

サーバー側のログは、セッションがクライアントによって終了したことを示します。

クライアント側のHadoopのログは言う:org.apache.zookeeper.KeeperException $ ConnectionLossException: は「で引き起こさKeeperErrorCode = ConnectionLoss用/ HBaseの

私はハイブ地図経由のZooKeeperへの接続をmaintianすることができませんなぜすべてのアイデア/減らす? HBaseのと飼育係のため

Configsには、以下のとおりです。

# Autogenerated by Cloudera SCM on Wed Dec 28 08:42:23 CST 2011 
tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/var/zookeeper 
clientPort=2181 
maxClientCnxns=1000 
minSessionTimeout=4000 
maxSessionTimeout=40000 

HBaseのサイト-XMLは次のとおりです。

<property> 
    <name>hbase.rootdir</name> 
    <value>hdfs://alnnimb01:8020/hbase</value> 
    <description>The directory shared by region servers. Should be fully-qualified to include the filesystem to use. E.g: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR</description> 
</property> 

<property> 
    <name>hbase.master.port</name> 
    <value>60000</value> 
    <description>The port master should bind to.</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.master.info.port</name> 
    <value>60010</value> 
    <description>The port for the hbase master web UI Set to -1 if you do not want the info server to run.</description> 
</property> 
















<property> 
    <name>zookeeper.znode.parent</name> 
    <value>/hbase</value> 
    <description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper files that are configured with a relative path will go under this node. By default, all of HBase's ZooKeeper file path are configured with a relative path, so they will all go under this directory unless changed.</description> 
</property> 

<property> 
    <name>zookeeper.znode.rootserver</name> 
    <value>root-region-server</value> 
    <description>Path to ZNode holding root region location. This is written by the master and read by clients and region servers. If a relative path is given, the parent folder will be ${zookeeper.znode.parent}. By default, this means the root location is stored at /hbase/root-region-server.</description> 
</property> 


    <property> 
    <name>hbase.zookeeper.property.clientPort</name> 
    <value>2181</value> 
    <description>The ZooKeeper client port to which HBase clients will  connect</description> 
    </property> 

    <property> 
<name>hbase.zookeeper.quorum</name> 
<value>alnnimb01.aln.experian.com</value> 
<description>Comma separated list of servers in the ZooKeeper Quorum. For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".</description> 

答えて

5

が地図/ハイブから提出されたReduceには、接続しようとしていることが判明しますzookeeper.quoromが設定ファイルにどのように設定されているかに関係なく、 'localhost'のzookeeperに送信します。/etc/hostsを、私のマスターノードのIPを指す別名「localhost」を指すように変更し、zookeeperへの接続を維持しました。それでももっと良い解決策を探していますが、これは今のところうまくいくでしょう。

1

新しい回答を投稿して申し訳ありません。私は以前の答えにコメントしたが、コメントUIは消えてしまったようだ。とにかく< ...

、私は同じ問題を経験していますことを言いたかった、それは/ etc/hostsファイルがハック行うことによって解決されるが、それは非常に汚いソリューションのように思える...

誰もこれをきれいに固定する方法を見つけましたか?

ありがとうございました!

3

私はそれを理解しました。それは構成上の問題でした(私はすべて一緒に疑ったように)。ソリューションでしたへ:「ハイブ-site.xmlの」と「のHadoop-confの」でそれを置くディレクトリ内

-set「hbase.zookeeper.quorum」を

私を投げたがあることが何でしたhive-default.xmlには 'hbase .zookeeper.quorum'はありません。私は 'ハイブ .zookeeper.quorum'で遊んでいましたが、これは変更する正しい設定ではありませんでした。

関連する問題