2012-02-03 11 views
8

Abbiamo un cluster a 8 nodi utilizzando CDH3u2 configurato utilizzando Cloudera Manager. Abbiamo un nodo master dedicato che esegue la nostra unica istanza di zookeeper. Quando configuro l'hive per eseguire hadoop locale, eseguito dal nodo master, non ho problemi a recuperare i dati da HBase. Quando eseguo la mappa distribuita/riduci tramite hive, ricevo il seguente errore quando i nodi slave si connettono a zookeeper.Integrazione Hive/HBase - La sessione Zookeeper si chiude immediatamente

HBase è in grado di connettersi a ZooKeeper ma la connessione si chiude immediatamente. Questo potrebbe essere un segno che il server ha troppe connessioni (30 è l'impostazione predefinita).

Abbiamo provato a impostare connessioni massime più alte (abbiamo anche provato a rimuovere il limite). Questo è un cluster di sviluppo che ha pochissimi utenti, so che il problema non è che ci siano troppe connessioni (sono in grado di connettermi a zookeeper dai nodi slave usando ./zkCli).

I registri lato server indicano che la sessione è stata terminata dal client.

client di registro lato Hadoop dice: 'causata da: org.apache.zookeeper.KeeperException $ ConnectionLossException: KeeperErrorCode = ConnectionLoss per/HBase

Qualche idea per questo che sono in grado di maintian una connessione a Zookeeper via Hive Mappa /Ridurre?

Configs per HBase e Zookeeper sono:

# 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 è:

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

risposta

5

scopre che il Map/Reduce presentata da Hive sta tentando di connettersi a zookeeper su 'localhost', indipendentemente da come il file zookeeper.quorom è impostato nel file di configurazione. Ho cambiato/etc/hosts per avere il punto alias "localhost" sull'IP del mio nodo master e la connessione a zookeeper è mantenuta. Sto ancora cercando una risoluzione migliore, ma per ora funzionerà.

1

Mi dispiace per la pubblicazione di una nuova risposta. Volevo commentare la risposta precedente ma l'interfaccia utente commentante sembra essere scomparsa>. < ...

Comunque, volevo dire che sto vivendo lo stesso problema, e si è risolto facendo le/etc/hosts hack, ma che sembra una soluzione molto sporco ...

Qualcuno ha trovato un modo per sistemarlo in modo pulito ... ??

Grazie :)!

3

L'ho capito. Era un problema di configurazione (come sospettavo da sempre). La soluzione era quella di:

-set 'hbase.zookeeper.quorum' all'interno del 'alveare-site.xml' e posizionarlo nella 'Hadoop-conf' directory

Cosa mi ha buttato fuori era che non c'è no 'hbase .zookeeper.quorum' in hive-default.xml. Stavo giocando con 'hive .zookeeper.quorum', che non era la configurazione corretta da modificare.