2012-02-03 3 views
8

Cloudera Manager를 사용하여 구성된 CDH3u2를 사용하는 8 노드 클러스터가 있습니다. 유일한 사육사 인스턴스를 실행하는 전용 마스터 노드가 있습니다. 마스터 노드에서 실행 된 로컬 hadoop을 실행하도록 하이브를 구성 할 때 HBase에서 데이터를 가져 오는 데 문제가 없습니다. 하이브를 통해 분산 맵/축소를 실행하면 슬레이브 노드가 사육사에게 연결될 때 다음과 같은 오류가 발생합니다.하이브/HBase 통합 - 사육사 세션 즉시 종료

HBase가 ZooKeeper에 연결할 수 있지만 즉시 연결이 닫힙니다. 이는 서버에 너무 많은 연결이 있음을 나타내는 기호 일 수 있습니다 (기본값은 30입니다).

우리는 최대 연결 수를 더 높게 설정하려고 시도했습니다 (우리는 한계를 제거하려고 시도했습니다). 이것은 사용자가 거의없는 개발 클러스터입니다. 문제는 너무 많은 연결이 없다는 것입니다. (저는 ./zkCli를 사용하여 슬레이브 노드에서 사육사에게 연결할 수 있습니다).

서버 쪽 로그는 세션이 클라이언트에 의해 종료되었음을 나타냅니다.

클라이언트 측 하둡 로그는 말한다 : org.apache.zookeeper.KeeperException $ ConnectionLossException : 가 '에 의한 KeeperErrorCode = ConnectionLoss에 대한/HBase를

내가 하이브지도를 통해 사육사의 연결을 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

가지도/하이브가 제출 한 감소가 연결을 시도하는 것을 밝혀 zookeeper.quorom이 설정 파일에 어떻게 설정되어 있는지에 관계없이 'localhost'에있는 사육사에게. 나는/etc/hosts를 나의 마스터 노드의 IP를 가리키는 별칭 'localhost'로 바꾸고 사육사와의 연결을 유지한다. 그래도 더 나은 해상도를 찾고 있지만 지금은 효과가 있습니다.

1

새로운 답변을 게시하는 것에 죄송합니다. 이전 답변에 대해 의견을 말하고 싶지만 주석 달린 UI는 사라진 것처럼 보입니다.> < ... 어쨌든

, 나도 같은 문제가 발생하고 있음을 말하고 싶어하고,은/etc/호스트가 해킹 수행하여 해결된다,하지만 ... 아주 더러운 솔루션처럼 보인다

누군가 이것을 깨끗하게 고치는 방법을 찾아 냈는가 ... ??

감사합니다 :)!

3

나는 그것을 알아 냈다. 구성상의 문제였습니다 (제가 처음부터 생각한 것처럼). 이 솔루션이라고 할 다음 '하이브-site.xml 파일'과 '하둡의 conf'에 배치 디렉토리 내의

-set 'hbase.zookeeper.quorum을'

날을 던졌다가 무엇을했다 hive-default.xml에 'hbase .zookeeper.quorum'이 없습니다. 나는 '하이브.zookeeper.quorum'으로 바꾸고 있었는데, 이것은 바른 설정이 아니었다.