我已经使用 java 和 hadoop 1.0.1 开发了一些 MR 作业。但是,EMR 仅支持 Hadoop 0.20。是否可以在 EMR 上运行 Hadoop 1.0.1 作业,或者我是否必须降级我的库堆栈以符合 EMR hadoop 版本?
问问题
201 次
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 中。
随意将编译错误重新发布到您的原始问题中,以便人们评论潜在的解决方法。
于 2012-04-07T12:03:41.550 回答