将csv数据加载到Hbase中

时间:2012-12-17 00:18:05

标签: hadoop hbase

我是hadoop和hbase的新手,并且在我找到的每个教程中都有一些概念性问题让我感到沮丧。

我的win 7系统上的ubuntu VM中的单个节点上运行了hadoop和hbase。我有一个csv文件,我想加载到一个hbase表中。

列是:loan_number,borrower_name,current_distribution_date,loan_amount

我知道我需要编写一个MapReduce作业来将这个csv文件加载到hbase中。以下教程描述了编写此MapReduce作业所需的Java。 http://salsahpc.indiana.edu/ScienceCloud/hbase_hands_on_1.htm

我缺少的是:

我在哪里保存这些文件以及在哪里编译它们?我应该在运行visual studio 12的win 7机器上编译它然后将它移动到ubuntu vm吗?

我读了这个问题和答案,但我想我仍然遗漏了基础知识:Loading CSV File into Hbase table using MapReduce

我找不到涵盖这些基本hadoop / hbase物流的任何内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:15)

无需编写MapReduce作业代码即可将数据批量加载到HBase中。有几种方法可以将数据批量加载到HBase中:

1)使用HBase工具,例如importtsvcompletebulkload http://hbase.apache.org/book/arch.bulk.load.html

2)使用Pig批量加载数据。例如:

A = LOAD '/hbasetest.txt' USING PigStorage(',') as 
      (strdata:chararray, intdata:long);
STORE A INTO 'hbase://mydata'
        USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
              'mycf:intdata');

3)使用HBase API以编程方式进行。我有一个名为hbaseloader的小项目,它将文件加载到HBase表中(表中只有一个 ColumnFamily ,包含文件内容)。看看它,您只需要定义表的结构并修改代码以读取csv文件并解析它。

4)使用MapReduce作业以编程方式执行此操作,如您提到的示例。

答案 1 :(得分:2)

Where do I save these files and where do I compile them? Should I compile this on my win 7 machine running visual studio 12 and then move it to the ubuntu vm?

您可以将Map Reduce类保存在任何位置(在Win 7或Ubuntu VM中)。你也可以在任何地方编译它。只需使用您创建的类创建一个Jar文件,然后使用该jar运行虚拟机中的map reduce。

然后在启动Hadoop后的Ubuntu VM中,您可以使用以下命令来运行您创建的map reduce类。

<Path To Hadoop Bin>/hadoop jar <Path to Jar>/<Jar Name>.jar <Map Reduce Class Name> <Class Arguments> ...

当你运行上面的命令时,你编写的Map Reduce类将被执行,同时将填充Hbase表。

希望这有帮助