我需要解决以下问题: 我的项目有两个 jar ,其中
一个 jar 包含所有 bean 类,如 Employee 等,另一个 jar 包含使用第一个 jar bean 类的 MR 作业,所以当我尝试将 MR 作业作为一个简单的 java 程序运行时,我面临找不到类的问题(找不到 com.abc.Employee 类,因为它在另一个 jar 中)所以任何人都可以为我提供如何解决问题的解决方案....因为实时可能有很多 jar 而不是 1 或 2 如何指定所有那些 jar 可以任何人请尽快回复。
最佳答案
在存储 Oozie 工作流的 HDFS 目录中应该有一个 lib
文件夹。你可以将两个 jar 文件放在这个文件夹中,oozie 将确保它们在你的 MR 作业执行时都在类路径中:
hdfs://namenode:8020/path/to/oozie/app/workflow.xml
hdfs://namenode:8020/path/to/oozie/app/lib/first.jar
hdfs://namenode:8020/path/to/oozie/app/lib/second.jar
参见 Workflow Application Deployment了解更多详情
如果您经常在许多 oozie 工作流中使用 jars,您可以将这些常用 jars(例如 HBase jars)放在 HDFS 中的一个目录中,然后在 oozie 属性中表示以包含此文件夹的 jars 参见 HDFS Share Libraries了解更多详情
关于hadoop - oozie中如何指定多个jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12720610/