如何使用Oozie运行MapReduce ToolRunner作业



我开发了一个使用ToolRunner的MapReduce应用程序。根据用户传递的参数和配置属性,应用程序以某种方式设置作业:选择特定的输入/输出格式,选择映射器和化简器类等。这个逻辑是在我的主类的run(String[] args)方法中实现的,该方法实现了ConfiguredTool

Oozie支持MapReduce动作节点,但问题是我不能将它们与我的自定义ToolRunner应用程序一起使用。MapReduce操作仅允许通过配置输入/输出格式,映射器/化简器类和键/值类来定义静态作业。我的应用程序根据更高级别的业务逻辑动态执行此操作。

该操作应该能够执行类似以下命令行的内容:

hadoop jar my.jar com.example.MyMainClass -D my.config1=a -D my.config2=b arg1 arg2

我可以创建支持ToolRunner MapReduce应用程序的Oozie操作吗?

是的,您可以使用 Java 操作。 不幸的是,这并不理想,因为 Oozie 创建了一个工作,然后运行您的ToolRunner,从而创建自己的作业。 不过它确实有效。

相关内容

  • 没有找到相关文章

最新更新