在不使用Pig Script的情况下从HDFS加载HBase中的数据

时间:2016-12-12 14:16:40

标签: hadoop mapreduce hbase hdfs apache-pig

我在.csv中有HDFS个文件。我想在HBASE表中加载这些表而不使用Pig脚本。

还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

可能有几种方法。但是有些选项如下所示。

选项1:简单方法是ImportTsv

ImportTsv是一个实用程序,它将TSV格式的数据加载到HBase中。它有两个不同的用法:通过Puts将数据从HDFS中的TSV格式加载到HBase中,并准备通过completebulkload加载StoreFiles。

通过Put加载数据(即非批量加载):

$ bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>

生成用于批量加载的StoreFiles:

$ bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c -Dimporttsv.bulk.output=hdfs://storefile-outputdir <tablename> <hdfs-data-inputdir>

这些生成的StoreFiles可以通过第14.1.10节“CompleteBulkLoad”加载到HBase中。

示例hbase> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="c1,c2,c3...." hdfs://servername:/tmp/yourcsv.csv

选项2:自定义map-reduce方式

编写mapreduce程序和csv解析器,以防你需要解析复杂的csv

see example here