【问题标题】:Hadoop streaming with HBase as data sink使用 HBase 作为数据接收器的 Hadoop 流式传输
【发布时间】: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


【解决方案1】:

来自 HBase 邮件列表的回答:

无法(直接)向 HBase 进行 Hadoop 流式输出。使用 REST/Thrift API 代替。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多