【发布时间】:2015-10-02 02:09:43
【问题描述】:
我们的研究小组已经设置并运行了 Hadoop 和 HBase。
最近我正在使用 Hadoop 流(仅映射器)来处理数据,我希望使用 HBase 作为数据接收器。我觉得我可以将 -outputformat 设置为 TableOutFormat。但是在网上搜索了一段时间,发现具体的操作可能需要很长时间才能弄清楚。
下面是我的试用:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-input myInputDirs \
-outputformat HBaseLibDir/TableOutFormat \
-mapper myMapperScript \
-numReduceTasks 0
有经验的人可以教我怎么做吗?包括在 myMapperScript 中要更改的内容,以及为初始化流作业而传入的参数。
【问题讨论】:
-
当您使用流媒体时,您正在使用哪种语言。
-
@Ramzy 我正在研究 Python,但我认为这没关系,不是吗?
-
在java中,有一个很好的方法来使用Hbase作为sink和map reduce。由于您使用的是流式传输,因此您正在谈论的脚本应该具有输入文件中的字段与 Hbase 的列限定符之间的映射(作为 Put 的一部分)。所以我认为你应该使用你的语言中的映射脚本(可能是你说的python)。
-
我的想法是,如果我可以在流作业中正确设置参数(HBase 库、表名等)并根据需要的格式输出键值对(例如:Rowkey\ tColumn\tValue),然后 HBase 可以提取输出并将它们放入表中。 (那太好了!)
-
真的很棒,但是应该有一些代码来将字段与列限定符匹配,因为一组参数无法做到这一点。这就是我想脚本的原因。我来自java背景,所以只能在概念上帮助你:)。我假设您指的是this。但我想那是第三方。验证是否支持
标签: hadoop hbase hadoop-streaming