在amazon aws上并行运行pig脚本

7cwmlq89  于 2021-06-21  发布在  Pig
关注(0)|答案(3)|浏览(347)

我们目前在amazonemr上按顺序运行所有的pig作业,因此我们启动一个集群,然后将所有的pig作业作为一个步骤逐个添加到集群中。虽然这是可行的,我想知道是否有什么东西可以让你运行这些养Pig并行工作。
理想情况下,我想做以下工作:启动一个集群(比如说c3.xlarge),然后向它抛出15个pig作业。然后,这些作业将尽可能地并行运行(例如:同时运行3个作业),当1个作业完成时,另一个作业将被执行。
如果有这样的事情存在,以及我们如何使用它,任何帮助都将不胜感激。我读了一些关于oozie的文章,但我不确定这是否适合我们的需要。

6yjfywim

6yjfywim1#

通常,如果您手动重新配置emr集群以使用fair调度器并通过shell提交任务,那么这是可能的。或者你可以和oozie一起去qay。但一般来说,这不像从盒子里。

hujrc8aj

hujrc8aj2#

oozie可以帮助您并行运行pig脚本。为了调度pig脚本的并行执行,可以使用fork-join控制节点。例如,fork和join控制节点。
唯一的一点是,它将开始并行执行所有分叉脚本,不提供给您一个固定的并行控制。您需要在oozie工作流应用程序定义中自己管理它。关于清管器动作,请查看文件。
这两个map reduce作业将并行执行。你可以在这里使用像Pig,Hive,Map等工作的组合。

<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:8021</job-tracker>
            <name-node>bar:8020</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:8021</job-tracker>
            <name-node>bar:8020</name-node>
            <job-xml>job2.xml</job-xml>
        </map-reduce>
        <ok to="joining"/>
        <error to="kill"/>
    </action>
    <join name="joining" to="nextaction"/>
    ...
</workflow-app>
bvuwiixz

bvuwiixz3#

emr步骤不能并行运行。但是,正如您所提到的,使用oozie来协调pig脚本的执行,使用fork和join操作来并行运行。

相关问题