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

Oozie支持MapReduce操作节点,但是问题是我无法在我的自定义ToolRunner应用程序中使用它们。 MapReduce操作仅允许通过配置输入/输出格式,映射器/归约器类和键/值类来定义静态作业。我的应用程序根据高层业务逻辑动态地执行此操作。

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

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

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

最佳答案

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

关于java - 如何在Oozie中运行MapReduce ToolRunner作业?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20100018/

10-08 21:55