最简单的非Java方式在CDH3上编写HBase MapReduce?

时间:2010-12-29 19:12:52

标签: python hadoop mapreduce hbase

我已经做了很长时间了,我觉得很疲惫;我希望来自SO社区的[显而易见的]洞察力可以让我的宠物项目重新开始,所以我可以停止踢自己。我正在使用Cloudera CDH3,HBase .89和Hadoop .20。

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

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

我不在乎它是Python,Ruby,Scala,Clojure,Jython,JRuby还是PHP,我只是真的不想写Java(由于很多原因,大多数它们涉及我每次必须将Int()转换为IntWritable()等时得到的下沉感。

我已经尝试了每一个最后的解决方案和示例,我可以找到(过去4周)用其他语言编写HBase Map / Reduce作业,但一切似乎都已过时或不完整。请Stack Overflow,保存我自己的设备!

1 个答案:

答案 0 :(得分:0)

这不是答案,但它是我最接近的答案 -

我昨天在irc.freenode.net的#hbase上问道,其中一名Cloudera员工回复了。 我与Pig一起使用的“Input Splits”问题是Pig 0.7特有​​的,而Pig 0.8将与Cloudera CDH3 Beta 4捆绑在一起(没有ETA)。因此,我想要做的事情(使用HBase表作为接收器和源代码轻松编写M / R作业)将在下一个版本中实现。似乎HBaseStorage类通常也会得到改进,以帮助从 ANY JVM语言进行读/写操作,同时使Jython,JRuby,Scala和Clojure更加可行。

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