#hadoop #hbase
#hadoop #hbase
Вопрос:
Небольшое описание hbase в книге O’Reilly Elephant показывает использование оболочки командной строки ‘hbase’ для выполнения задания по сокращению карты с использованием hbase.
Однако наш код имеет длинный путь к классу, поэтому мы хотим использовать функцию каталога библиотеки hadoop, включенную JobConf.setClassByJar и командой ‘hadoop’. Возможно, мы что-то напутали, но нам показалось, что с командой hbase это не сработало.
Могут ли обычные задания hadoop вызывать hbase API? Что делает командная строка hbase?
(hadoop 0.20.2, соответствующая hbase)
Ответ №1:
Вы можете использовать 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
и предоставлении правильных значений ваша работа (у меня был только mapper) может получить доступ к HBase API.
Надеюсь, это поможет.
Ответ №2:
Да, это сработает. Как мы это делаем, упаковываем все (включая HBase jar) в fat jar и запускаем команду Hadoop.
Утилита командной строки hbase может использоваться для:
-
Доступ к таблицам — это позволяет вам сканировать ваши таблицы, запускать сжатия, включать / отключать таблицы и т.д.Это похоже на любую другую оболочку базы данных, но более мощную, потому что, как в моем следующем пункте
-
Вы можете запускать скрипты jruby с помощью команды:
hbase org.jruby.Main <your_script>
-
Вы даже можете запускать свои Java-материалы, находясь в командной оболочке. Это может быть полезно для распечатки свойств кластера и т.д.
примеры здесь:
http://wiki.apache.org/hadoop/Hbase/Shell