9

我对 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 吗?

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

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

4

2 回答 2

15

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

1) 使用 HBase 工具importtsv,例如completebulkload 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 作业以编程方式执行此操作。

于 2012-12-18T14:48:29.697 回答
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 在 VM 中运行 map reduce。

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

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

当您运行上述命令时,您编写的 Map Reduce 类将与 Hbase 表一起被执行。

希望这可以帮助

于 2012-12-17T06:00:47.250 回答