【问题标题】:How can I run MapReduce ToolRunner jobs with Oozie?如何使用 Oozie 运行 MapReduce ToolRunner 作业?
【发布时间】:2013-12-04 16:28:20
【问题描述】:

我开发了一个使用 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 hadoop mapreduce oozie


    【解决方案1】:

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

    【讨论】:

    • 根据您的回答,我阅读了有关 Java 操作的更多信息,并发现它们从映射器运行,就像 Shell 操作一样。 Pig 和 Hive 操作是否也是从映射器开始的?
    • 好问题。我没有尝试过 Pig 或 Hive 动作,所以我不知道它们是做什么的。不过我不会感到惊讶。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2014-01-22
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多