gpt4 book ai didi

hadoop - 将 jars 添加到启动 map reduce 作业的代码的类路径中

转载 作者:可可西里 更新时间:2023-11-01 16:31:55 25 4
gpt4 key购买 nike

我正在尝试从实现 Tool 接口(interface)的应用程序启动 map reduce 作业。该应用程序几乎没有做其他事情,例如 map reduce 作业的先决条件。

此类使用一些第三方库,如何在运行 jar 时使用以下命令将这些 jar 添加到类路径:hadoop jar < myjar > [args]

从这里Cloudera's post我试图将 HADOOP_CLASSPATH env var 设置为第三方 jar,但没有成功。上面提到的第三方 jar 仅由启 Action 业的类而不是 Mapper/Reducer 类需要。所以我不需要把它们放在分布式缓存中。

当我在 $HADOOP_HOME/lib 下复制这些我需要的第三方 jar 时,它可以工作,但我需要一个更干净的解决方案。

感谢期待。

注意 - 我知道将所有第三方 jar 放在 my-map-reduce-job.jar jar 的 lib 目录中会起作用,但我没有那个自由,jar 是使用 Maven 创建的,我想要这些my-map-reduce-job.jar 之外的第三方 jar

最佳答案

供将来引用 -在启动 map reduce 作业的客户端机器上设置 env var HADOOP_CLASSPATH 是可行的方法。

我发现了我的错误,我以错误的方式导出了 HADOOP_CLASSPATH。 jar 之间的分隔符是平台相关的,对于 Unix,它的冒号 (:)

export HADOOP_CLASSPATH=/path/to/my/jar1:/path/to/my/jar2接着hadoop jar [mainClass] [args]

如果 HADOOP_CLASSPATH env var 已在别处预定义,您可能希望将其附加到 jar。export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/path/to/my/jar1:/path/to/my/jar2

关于hadoop - 将 jars 添加到启动 map reduce 作业的代码的类路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com