用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,具體介紹點擊打開鏈接