1

我在这方面工作了很长时间,感觉很累;我希望来自 SO 社区的 [明显?] 见解可能会让我的宠物项目重新开始,这样我就可以停止踢自己了。我正在使用 Cloudera CDH3、HBase .89 和 Hadoop .20。

我有一个 Python/Django 应用程序,它使用 Thrift 接口将数据写入单个 HBase 表,效果很好。现在我想将它映射/减少到更多的 HBase 表中。

这里明显的答案是 Dumbo 或 Apache PIG,但是对于 Pig,HBaseStorage 适配器支持不适用于我的版本(Pig 能够加载类和定义,但在“映射”步骤冻结,抱怨“输入拆分”;Pig 邮件列表表明这是在 Pig 0.8 中修复的,它与 CDH3 Hadoop 不兼容,所以我必须使用所有东西的边缘版本 [我认为])。我找不到任何关于如何让 Dumbo 使用 HBaseStorage 作为数据接收器的信息。

我不在乎它是 Python、Ruby、Scala、Clojure、Jython、JRuby 还是 PHP,我只是真的不想写 Java(有很多原因,其中大部分都涉及到我每次遇到的下沉感觉必须将 Int() 转换为 IntWritable() 等)。

我已经尝试了所有我能找到的最后一个解决方案和示例(过去 4 周),用于用替代语言编写 HBase Map/Reduce 作业,但一切似乎都过时或不完整。请 Stack Overflow 把我从我自己的设备中拯救出来!

4

1 回答 1

0

这不是一个准确的答案,但它是我得到的最接近的答案——

我昨天在 irc.freenode.net 上的#hbase 中提问,其中一位 Cloudera 员工做出了回应。我在 Pig 中遇到的“输入拆分”问题是 Pig 0.7 特有的,而 Pig 0.8 将与 Cloudera CDH3 Beta 4 捆绑在一起(没有 ETA)。因此,我想做的事情(使用 HBase 表作为接收器和源来轻松编写 M/R 作业)将在他们的下一个版本中实现。似乎 HBaseStorage 类也将得到普遍改进,以帮助任何JVM 语言的读/写操作,也使 Jython、JRuby、Scala 和 Clojure 都更加可行。

所以这个时候问题的答案是“等待CDH3 Beta 4”,或者如果你不耐烦,“下载最新版本的Pig并祈祷它与你的HBase兼容”

于 2010-12-31T02:16:40.610 回答