我在.csv
中有HDFS
个文件。我想在HBASE
表中加载这些表而不使用Pig
脚本。
还有其他方法吗?
答案 0 :(得分:3)
可能有几种方法。但是有些选项如下所示。
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
编写mapreduce程序和csv解析器,以防你需要解析复杂的csv