HBase Export / Import: невозможно найти выходной каталог - PullRequest
1 голос
/ 02 января 2012

Я использую HBase для своего приложения и пытаюсь экспортировать данные, используя org.apache.hadoop.hbase.mapreduce.Export, как было указано здесь . Проблема, с которой я сталкиваюсь в этой команде, заключается в том, что после ее выполнения при создании экспорта ошибок не возникает. Но указанный выходной директой не появляется на своем месте. Я использовал команду

$ bin/hbase org.apache.hadoop.hbase.mapreduce.Export table_name db_dump/

Ответы [ 3 ]

2 голосов
/ 03 января 2012

Я получил решение, поэтому я отвечаю на свой собственный ответ

Вы должны иметь следующие две строки в hadoop-env.sh в каталоге conf hadoop

export HBASE_HOME=/home/sitepulsedev/hbase/hbase-0.90.4
export HADOOP_CLASSPATH=$HBASE_HOME/hbase-0.90.4.jar:$HBASE_HOME/conf:$HBASE_HOME/hbase-0.90.4-test.jar:$HBASE_HOME/lib/zookeeper-3.3.2.jar:$HBASE_HOME

сохраните его и перезапустите с помощью карт ./stop-mapred.sh и ./start-mapred.sh

теперь запускается в каталоге bin hadoop

./hadoop  jar  ~/hbase/hbase-0.90.4/hbase-0.90.4.jar export your_table /export/your_table

Теперь вы можете проверить дамп, нажав

./hadoop fs -ls /export

наконец, вам нужно скопировать все это в вашу локальную файловую систему, для которой запустите

./hadoop fs -copyToLocal /export/your_table ~/local_dump/your_table

Вот ссылки, которые помогли мне в export / import и в командах оболочки hadoop

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

1 голос
/ 03 апреля 2013

Как вы заметили, инструмент экспорта HBase создаст резервную копию в HDFS, если вместо этого вы хотите, чтобы вывод записывался на локальную FS, вы можете использовать URI файла. В вашем примере это будет что-то похожее на:

bin/hbase org.apache.hadoop.hbase.mapreduce.Export table_name file:///tmp/db_dump/

Относительно вашего собственного ответа, это также позволит избежать прохождения через HDFS. Просто будьте очень осторожны, если вы используете это кластер серверов, потому что каждый сервер будет записывать файлы результатов в свои локальные файловые системы.

Это верно как минимум для HBase 0.94.6.

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

0 голосов
/ 26 августа 2015

Я думаю, что предыдущий ответ нуждается в некоторой модификации:

  • Платформа: AWS EC2,
  • ОС: Amazon Linux
  • Hbase Версия: 0.96.1.1
  • Распределение Hadoop: Cloudera CDH5.0.1
  • MR двигатель: MRv1

Чтобы экспортировать данные из таблицы Hbase в локальную файловую систему:

sudo -u hdfs /usr/bin/hbase org.apache.hadoop.hbase.mapreduce.Export -Dmapred.job.tracker=local "table_name" "file:///backups/"

Эта команда будет выгружать данные в формате HFile с количеством файлов, равным количеству областей этой таблицы в Hbase.

...