Команда hbase против команды hadoop - PullRequest
0 голосов
/ 13 апреля 2011

Небольшое описание hbase в книге O'Reilly Elephant показывает использование оболочки командной строки 'hbase' для запуска задания сокращения карты с использованием hbase.

Однако наш код имеетдлинный путь к классу, поэтому мы хотим использовать функцию каталога lib в hasoop, активированную JobConf.setClassByJar и командой 'hadoop'.Хотя мы, возможно, что-то напутали, нам показалось, что это не сработало с командой hbase.

Могут ли обычные задания hadoop вызывать hbase API?Что делает командная строка hbase?

(hadoop 0.20.2, hbase соответствует)

Ответы [ 2 ]

1 голос
/ 13 апреля 2011

Вы можете использовать HBase API в задании Hadoop.

Вот некоторые фрагменты кода для использования HBase API в задании.

Импорт

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;

Это внутри функции @Override в моем коде

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

Очевидно, что не полные фрагменты, но с правильным imports и предоставлением правильных значений ваша работа (у меня был только картограф) может получить доступ к HBase API.

Надеюсь, это поможет.

0 голосов
/ 02 сентября 2012

Да, это будет работать.Как мы это делаем, упаковываем все (включая банку HBase) в толстую банку и запускаем команду Hadoop.

Утилита командной строки hbase может использоваться для:

  1. Доступ к таблицам - это позволяет вам сканировать ваши таблицы, выполнять уплотнения, включать / отключать таблицы и т. Д. Это похоже на любую другую оболочку базы данных, но более мощное, потому что, как в моем следующем пункте

  2. Вы можете запускать сценарии jruby с помощью команды:

    hbase org.jruby.Main <your_script>
    
  3. Вы даже можете запускать Java-компоненты, находясь в оболочке.Это может быть полезно для распечатки свойств кластера и т. Д. Примеры здесь: http://wiki.apache.org/hadoop/Hbase/Shell

...