Hadoop 将数据从HDFS导入HBase(cdh3u2)
我已经安装了hadoop和hbase cdh3u2。在hadoop中,我在路径Hadoop 将数据从HDFS导入HBase(cdh3u2),hadoop,hbase,hdfs,cloudera,sqoop,Hadoop,Hbase,Hdfs,Cloudera,Sqoop,我已经安装了hadoop和hbase cdh3u2。在hadoop中,我在路径/home/file.txt处有一个文件。它的数据如下 one,1 two,2 three,3 我想将此文件导入hbase。在这种情况下,第一个字段应解析为字符串,第二个字段应解析为整数,然后将其推入hbase。帮我做这个 advance中的anks…我喜欢使用ApachePig来摄取HBase,因为它简单、直接、灵活 下面是一个Pig脚本,在创建表和列族之后,它将为您完成这项工作。要创建表和列族,请执行以下操作:
/home/file.txt
处有一个文件。它的数据如下
one,1
two,2
three,3
我想将此文件导入hbase。在这种情况下,第一个字段应解析为字符串,第二个字段应解析为整数,然后将其推入hbase。帮我做这个
advance中的anks…我喜欢使用ApachePig来摄取HBase,因为它简单、直接、灵活 下面是一个Pig脚本,在创建表和列族之后,它将为您完成这项工作。要创建表和列族,请执行以下操作:
$ hbase shell
> create 'mydata', 'mycf'
将文件移动到HDFS:
$ hadoop fs -put /home/file.txt /user/surendhar/file.txt
然后,编写要存储的pig脚本(您可能需要查找如何存储):
注意,在上面的脚本中,键将是strdata
。如果要从某个内容创建自己的密钥,请使用语句生成密钥。hbastorage假定上一个关系中的第一件事(A::strdata
,在本例中)是键
其他一些选择是:
- 写一个作业来做与上面相同的事情
- 直接与HTable进行交互,并逐行放入。这只能用小得多的文件来完成
- 使用某种脚本(即sed、perl、python)使用hbase shell向上推送数据,该脚本将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
851个文件被移动到hbase
。请帮帮我
$ 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