2012-04-07 85 views
3

我开发了一些使用java和hadoop 1.0.1的MR作业。但是,EMR仅支持Hadoop 0.20。是否有可能在EMR上运行Hadoop 1.0.1作业,还是必须降级我的库堆栈以符合EMR hadoop版本?支持Amazon EMR上的Hadoop 1.0.1作业

回答

3

取决于您是否使用任何1.0.1特定类。核心Mapper和Reducer类(新旧API类型)在0.20和1.0.1之间没有变化。

您可以尝试将您的hadoop依赖项更改为0.20.2并重建您的MR作业jar - 如果没有编译错误,那么您非常接近(可能会在0.20和1.0.1之间修复一些错误,但是我会想象一下你会没事的)。

如果您发现作业无法编译,并且它涉及某些输入/输出格式在0.20中不可用(如某些多输入/输出),您可以检查Hadoop的源代码版本1.0。 1(或确实是Cloudera 0.20.2源代码)来查看是否可以“回溯”缺少的格式,然后将其添加到作业jar中。

随时将编译错误重新发布回原始问题,以便人们评论潜在的解决方法。