根据Oozie的文档,我尝试在Oozie上运行一个map-reduce的例子。众所周知,'workflow.xml'(和'coordinator.xml')应该在 HDFS 中。
然后输入命令:oozie job -oozie http://localhost:11000/oozie -config examples/apps/map-reduce/job.properties -run
。而且我也知道“job.properties”应该在本地文件系统中。
但有两件事让我感到困惑:
1.为什么workflow.xml中的jar或class变量来自HDFS的lib目录?
2.oozie-examples-4.3.1.jar的内容有一张图。这个jar在HDFS里,怎么导入lib?
请原谅我糟糕的英语。
最佳答案
突出显示的红色框是 Hadoop 和 Java 默认类路径的一部分。作为 MapReduce 的一部分,在 YARN 中运行的任何 Java 代码都可以访问在您运行 hadoop classpath
命令时出现的包。顺便说一下,Hadoop 的 mapred.*
类几乎都被弃用了
据说这与 Oozie 无关,但 Oozie 使用 Oozie ShareLib 扩展了 Hadoop 类路径。 ,必须使用属性文件参数显式启用
oozie.use.system.libpath=true
除了类路径之外,Oozie 还会将 ${wf.application.path}/lib
目录发送到所有正在运行的作业
关于hadoop - 该示例如何在 Oozie 最佳情况下找到库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940613/