如何将多个作业提交到 Hadoop集群



我有一个运行Hadoop 2.6的Hadoop集群。我想并行提交多个作业。我想知道我是否应该简单地提交多个作业并让集群处理其余的工作,或者我应该将它们编写为 yarn 应用程序。事实上,我对 Yarn 应用程序开发不是很熟悉,并且确切地知道它与常规 Hadoop 应用程序有何不同。

您可以使用 MR1 和 YARN 运行 MR 作业。 YARN has nothing to do with job parallelism. 它只是一个用于运行各种作业的框架。

使用 oozie 工作流或 shell 脚本并行运行作业。

你可以定义oozie工作流,mapreduce作业被分叉。以下是来自apache oozie文档的示例。

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
    ...
    <fork name="forking">
        <path start="firstparalleljob"/>
        <path start="secondparalleljob"/>
    </fork>
    <action name="firstparallejob">
        <map-reduce>
            <job-tracker>foo:9001</job-tracker>
            <name-node>bar:9000</name-node>
            <job-xml>job1.xml</job-xml>
        </map-reduce>
        <ok to="joining"/>
        <error to="kill"/>
    </action>
    <action name="secondparalleljob">
        <map-reduce>
            <job-tracker>foo:9001</job-tracker>
            <name-node>bar:9000</name-node>
            <job-xml>job2.xml</job-xml>
        </map-reduce>
        <ok to="joining"/>
        <error to="kill"/>
    </action>
    <join name="joining" to="nextaction"/>
    ...
</workflow-app>

相关内容

  • 没有找到相关文章

最新更新