我有五個地圖減少,我分別運行每個。我想把它們都彙集在一起。所以,一份工作的輸出會轉到下一份工作。目前,我編寫了shell腳本來執行它們。有沒有辦法在java中寫這個?請舉一個例子。Pipeling hadoop map reduce jobs
感謝
我有五個地圖減少,我分別運行每個。我想把它們都彙集在一起。所以,一份工作的輸出會轉到下一份工作。目前,我編寫了shell腳本來執行它們。有沒有辦法在java中寫這個?請舉一個例子。Pipeling hadoop map reduce jobs
感謝
您可能會發現JobControl成爲鏈接這些工作在一起的最簡單的方法。對於更復雜的工作流程,我建議檢查Oozie。
嗨 我有類似的要求 一個做到這一點的方法是
提交的第一份工作執行以下
Job job1 = new Job(getConf());
job.waitForCompletion(true);
,然後使用
if(job.isSuccessful()){
//start another job with different Mapper.
//change config
Job job2 = new Job(getConf());
}
Oozie的是檢查狀態後爲你解決。您可以通過Oozie的操作標籤提交map-reduce類型的作業,hive作業,豬作業,系統命令等。
它甚至有一個協調員,作爲您的工作流的cron。
另一種可能性是Cascading,它也在Hadoop之上提供了一個抽象層:它似乎提供了與Hadoop概念密切合作的類似組合,但卻讓hadoop-do-M/R-heavy解除了使用Oozie工作流調用Pig腳本的問題。