我对hadoop和hbase非常陌生,在我找到的每个教程中,我都会遇到一些概念性的问题。
我在Win7系统的ubuntu虚拟机中的单个节点上运行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的win7机器上编译它,然后把它移到ubuntu vm上吗?
我读了这篇问答文章,但我想我仍然没有掌握基本的知识:Loading CSV File into Hbase table using MapReduce
我找不到任何涉及这些基本hadoop/hbase后勤的东西。任何帮助都将不胜感激。
发布于 2012-12-18 22:48:30
无需编写MapReduce作业即可将数据大容量加载到HBase中。将数据大容量加载到HBase中有几种方法:
1)使用importtsv和completebulkload http://hbase.apache.org/book/arch.bulk.load.html等HBase工具
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接口编程完成。我有一个名为hbaseloader的小项目,它将文件加载到一个HBase表中(该表只有一个包含文件内容的ColumnFamily )。看一下它,您只需要定义表的结构,并修改代码以读取csv文件并解析它。
4)使用您提到的示例中的MapReduce作业以编程方式完成。
发布于 2012-12-17 14:00:47
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类保存在任何地方(Win7或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表也将被填充。
希望这能有所帮助
https://stackoverflow.com/questions/13906847
复制相似问题