2011-04-12 4 views
0

Le peu de description de hbase dans le livre O'Reilly Elephant montre l'utilisation de l'enveloppe de ligne de commande 'hbase' pour exécuter un travail de réduction de mappe à l'aide de hbase.Commande hbase par rapport à la commande hadoop

Cependant, notre code a un long chemin de classe, nous voulons donc utiliser la fonction de répertoire lib de hadoop activée par JobConf.setClassByJar et la commande 'hadoop'. Même si nous avons peut-être raté quelque chose, il nous a semblé que cela ne fonctionnait pas avec la commande hbase.

Les tâches hadoop ordinaires peuvent-elles appeler l'API hbase? Que fait la ligne de commande hbase?

(Hadoop 0.20.2, HBase correspondant)

Répondre

1

Vous pouvez utiliser l'API HBase dans un emploi Hadoop.

Voici quelques extraits de code pour l'utilisation de l'API HBase dans un Job.

Importations

import org.apache.hadoop.hbase.HBaseConfiguration; 
import org.apache.hadoop.hbase.client.HTable; 
import org.apache.hadoop.hbase.client.Put; 
import org.apache.hadoop.hbase.util.Bytes; 

Ceci est dans une fonction @Override dans mon code

private HTable hTable = null; 
Configuration hConfig = HBaseConfiguration.create(); 
hConfig.set(Constants.HBASE_CONFIGURATION_ZOOKEEPER_QUORUM, zkQuorum); 
hConfig.set(Constants.HBASE_CONFIGURATION_ZOOKEEPER_CLIENTPORT, zkclientPort); 
hTable = new HTable(hConfig, hbCube); 
... 
hTable.put(subPuts); 

extraits Évidemment pas complets, mais avec le droit imports et en fournissant les bonnes valeurs de votre travail (je n'avais qu'une mapper) peut accéder à l'API HBase.

Espérons que ça aide.

0

Oui, cela fonctionnera. Comment nous le faisons, empaquetez tout (y compris le pot HBase) dans un gros pot et exécutez la commande Hadoop.

L'utilitaire de ligne de commande HBase peut être utilisé pour:

  1. Tables accès - ce qui vous permet de numériser vos tables, exécutez tassements, activer/tables désactiver, etc.It est tout autre shell de base de données, mais plus puissant parce que dans mon prochain point

  2. Vous pouvez exécuter des scripts JRuby avec la commande:

    hbase org.jruby.Main <your_script> 
    
  3. Vous pouvez même exécuter y nos trucs Java pendant que vous êtes dans la coquille. Cela peut être utile pour l'impression des propriétés du cluster, etc. exemples ici: http://wiki.apache.org/hadoop/Hbase/Shell

Questions connexes