2012-02-03 7 views
8

Mamy klaster z 8 węzłami używający CDH3u2 skonfigurowanego przy użyciu Cloudera Manager. Mamy dedykowany węzeł nadrzędny, który uruchamia naszą jedyną instancję Zookeepera. Kiedy skonfiguruję gałąź do uruchomienia lokalnego hadoopu, wykonywanego z węzła głównego, nie mam problemu z odzyskaniem danych z HBase. Kiedy uruchamiam rozproszoną mapę/zmniejsz przez ul, pojawia się następujący błąd, gdy węzły slave łączą się z zookeeperem.Integracja Hive/HBase - sesja Zookeeper'a jest natychmiast zamykana

HBase może połączyć się z ZooKeeper, ale połączenie natychmiast się zamyka. Może to być znak, że serwer ma zbyt wiele połączeń (domyślnie 30).

Próbowaliśmy ustawić maksymalną liczbę połączeń (próbowaliśmy nawet usunąć limit). Jest to klaster programistyczny, który ma bardzo niewielu użytkowników. Wiem, że problem nie polega na tym, że istnieje zbyt wiele połączeń (jestem w stanie połączyć się z zookeeperem z węzłów podrzędnych za pomocą ./zkCli).

Logi po stronie serwera wskazują, że sesja została zakończona przez klienta.

Client dziennika strona Hadoop mówi: „Spowodowane przez: org.apache.zookeeper.KeeperException $ ConnectionLossException: KeeperErrorCode = ConnectionLoss do/HBase

Każdy pomysł, dlaczego nie jestem w stanie maintian połączenia do Heca poprzez Hive mapą /Zmniejszyć?

Configs dla HBase i Heca to:

# 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 Site-XML jest:

<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> 

Odpowiedz

5

Okazuje się, że mapa/zmniejszanie przedłożony przez Ula próbuje się połączyć do zookeepera w 'localhost', bez względu na to, jak zookeeper.quorom jest ustawiony w pliku konfiguracyjnym. Zmieniłem/etc/hosts na alias "localhost" na adres IP mojego głównego węzła i utrzymano połączenie z zookeeperem. Nadal szukam lepszej rozdzielczości, ale to zadziała na razie.

1

Przykro mi z powodu zamieszczenia nowej odpowiedzi. Chciałem skomentować poprzednią odpowiedź, ale wydaje się, że interfejs komentowania zniknął>. < ...

W każdym razie, chciałem powiedzieć, że jestem przeżywa ten sam problem, i to jest rozwiązane wykonując/etc/hosts włamać, ale to wydaje się bardzo brudny roztwór ...

Czy ktoś wymyślił sposób naprawienia tego czysto ...?

Dzięki :)!

3

Wymyśliłem to. To był problem z konfiguracją (jak podejrzewałem przez cały czas). Rozwiązaniem było:

-Set „hbase.zookeeper.quorum” w „ula-site.xml” i umieścić go w „Hadoop-conf” Katalog

Co wyrzucił mnie było to, że nie ma nie ma "hbase .zookeeper.quorum" w pliku hive-default.xml. Grałem z "hive .zookeeper.quorum", która nie była poprawną konfiguracją do zmiany.

Powiązane problemy