我使用java和hadoop 1.0.1开发了一些MR作业。但是,EMR仅支持Hadoop 0.20。是否可以在EMR上运行Hadoop 1.0.1作业,还是必须降级我的库堆栈以符合EMR hadoop版本?
答案 0 :(得分: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来源)看看你是否可以“向后移”丢失的格式并将其添加到你的工作罐中。
您可以随意将编译错误重新发布回原始问题,以便人们对潜在的工作进行评论。