【问题标题】:Hadoop Compiled with Different Version than the clusterHadoop 编译的版本与集群不同
【发布时间】:2012-09-21 00:28:14
【问题描述】:

如果我使用旧的 hadoop lib 版本(如 0.20.0)开发我的 map-reduce 逻辑,然后创建一个 jar 文件并在集群版本高于 1.0.3 的集群上运行该 jar 文件,那么会发生什么?集群是否使用编译我的代码的相同版本的 hadoop,或者它是否忽略了我编译它的内容?您能解释一下这个过程在 hadoop 上的一般工作原理吗?

我知道它会运行,但我看到一些日志看起来像是使用了旧版本的 hadoop.common。 jar 文件也不包含 lib。

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    首先,您需要从胖 jar 中排除 hadoop-core 库,hadoop 提供了这一点。

    我认为如果您使用的任何库的 API 已从一个版本更改为另一个版本,您会收到一个异常指示。

    理论上,如果 API 没有改变,它应该可以工作,尽管这不能保证。最好在同一个版本上编译运行。

    【讨论】:

    • 我明白,但是用相同的版本编译不是一个选项。 API 相同,但逻辑看起来不同。我的问题是hadoop是如何处理的?我没有在我的 jar 中包含 hadoop 核心库,但我假设我的类路径引用了我编译代码的核心库。 hadoop 是否关心我的 jar 中的类路径文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多