用oozie跑一个workflow
这个workflow包含多个sqoop和pig脚本
刚开始跑就发生了问题,具体情况为:
sqoop启动的job,map显示100%,状态为running
reduce 0%然后无反映,一直处于等待状态
原因是我在本机伪分布式模式下默认的mapreduce个数为2
而在oozie的workflow中有多个任务要运行且有先后顺序
先启动的任务占了slot然后要等待其他任务结束
而其他任务在等待运行中的任务释放slot
修改mapred-site.xml覆盖单台task tracker最大任务数的默认设置
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>10</value>
<description>The maximum number of map tasks that will be run
simultaneously by a task tracker.
</description>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>10</value>
<description>The maximum number of reduce tasks that will be run
simultaneously by a task tracker.
</description>
</property>
设置为10个任务,然后重起hadoop,正确运行。
oozie是一个工作流引擎,可以控制java,sqoop,pig等,具体应用可以看官方介绍 点击打开链接
Sqoop is a tool designed to transfer data between Hadoop and relational databases,具体介绍点击打开链接