【问题标题】:Using different hadoop-mapreduce-client-core.jar to run hadoop cluster使用不同的 hadoop-mapreduce-client-core.jar 运行 hadoop 集群
【发布时间】:2026-01-24 16:55:01
【问题描述】:

我正在开发一个安装了 CDH4.2.0 的 hadoop 集群,但遇到了this 错误。它已在更高版本的 hadoop 中修复,但我无权更新集群。有没有办法告诉hadoop在通过命令行参数运行我的工作时使用这个jar,比如

hadoop jar MyJob.jar -D hadoop.mapreduce.client=hadoop-mapreduce-client-core-2.0.0-cdh4.2.0.jar

其中新的 mapreduce-client-core.jar 文件是来自票证的修补 jar。还是必须用这个新 jar 完全重新编译 hadoop?我是 hadoop 新手,所以我不知道所有可能的命令行选项。

【问题讨论】:

    标签: hadoop jar java-opts


    【解决方案1】:

    我不确定这将如何工作,因为当您执行 hadoop 命令时,您实际上是在执行客户端 jar 中的代码。

    你不能用MR1吗?该问题表明此问题仅在您使用 MR2 时发生,因此除非您真的需要 Yarn,否则您最好使用 MR1 库来运行您的 map/reduce。

    【讨论】:

    • 这听起来可能很傻,但是您如何运行 MR1 作业?那是 hadoop-0.20 吗?
    • 使用包:org.apache.hadoop/hadoop-client/2.0.0-mr1-cdh4.2.0。基本上将版本从“2.0.0”更改为“2.0.0-mr1”