Импорт данных из HDFS в HBase (cdh3u2)
Я установил hadoop и HBase cdh3u2. В hadoop у меня есть файл на пути /home/file.txt
. он имеет такие данные, как
one,1
two,2
three,3
Я хочу импортировать этот файл в hbase. при этом первое поле должно быть проанализировано как String, а второе поле-как integer, а затем оно должно быть помещено в hbase. Помогите мне сделать это
благодарение в dvance....
1 ответов
мне нравится использовать Apache Pig для глотания в HBase, потому что он прост, прост и гибок.
вот сценарий свиньи, который сделает эту работу за вас, после того, как вы создали таблицу и семейство столбцов. Чтобы создать таблицу и семейство столбцов, выполните следующие действия:
$ hbase shell
> create 'mydata', 'mycf'
переместить файл в HDFS:
$ hadoop fs -put /home/file.txt /user/surendhar/file.txt
затем напишите сценарий свиньи для хранения с HBaseStorage (возможно, вам придется искать как настройка и запуск Свинья!--15-->):
A = LOAD 'file.txt' USING PigStorage(',') as (strdata:chararray, intdata:long);
STORE A INTO 'hbase://mydata'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'mycf:intdata');
обратите внимание, что в приведенном выше сценарии, ключ будет strdata
. Если вы хотите создать свой собственный ключ из чего-то, используйте FOREACH оператор для генерации ключа. HBaseStorage предполагает, что первое в предыдущем отношении (A::strdata
в этом случае) является ключом.
некоторые другие варианты могут быть:
- написать Java MapReduce работа, чтобы сделать то же самое, что выше.
- взаимодействовать непосредственно с HTable с клиент и поставить ряд за рядом. Это должно быть сделано только с гораздо меньшими файлами.
-
нажмите данные с помощью оболочки hbase, используя какой-то скрипт (т. е. sed, perl, python), который преобразует строки csv в shell
put
команды. Опять же, это следует делать только в том случае, если количество записей невелико.$ cat /home/file.txt | transform.pl put 'mydata', 'one', 'mycf:intdata', '1' put 'mydata', 'two', 'mycf:intdata', '2' put 'mydata', 'three', 'mycf:intdata', '3' $ cat /home/file.txt | transform.pl | hbase shell