讓我們假設多個MapReduce作業是鏈接的,如下所示。當多個MapReduce作業被鏈接時,每個寫入到HDFS的輸出是什麼?
Map1-Reduce1 -> Map2-Reduce2 -> ... -> MapN-ReduceN
將每個MapReduce作業的輸出寫入HDFS嗎?例如,將Map1-Reduce1的輸出寫入HDFS?並且在Map2-Reduce2中的任務失敗的情況下,Map2-Reduce2可以通過讀取已經在HDFS中的Map1-Reduce1的輸出重新啓動。
讓我們假設多個MapReduce作業是鏈接的,如下所示。當多個MapReduce作業被鏈接時,每個寫入到HDFS的輸出是什麼?
Map1-Reduce1 -> Map2-Reduce2 -> ... -> MapN-ReduceN
將每個MapReduce作業的輸出寫入HDFS嗎?例如,將Map1-Reduce1的輸出寫入HDFS?並且在Map2-Reduce2中的任務失敗的情況下,Map2-Reduce2可以通過讀取已經在HDFS中的Map1-Reduce1的輸出重新啓動。
您可以通過擴展Configured
類並編寫多個作業配置(即每個M-R
一個作業配置)來實現此目的。一個m-r
實例的outputpath
將作爲第二個輸入。
是的,你可以使用oozie
通過HDFS
序列化從一個MapR
到另一個你的輸出。您應該在Hadoop中結帳ChainMapper
類。
您可以使用oozie或Spring Batch都適合您的解決方案。您可以將每個步驟的輸出寫入HDFS,並在下一個Map Reduce Job中讀回。
我不是想實現任何目的,而是試圖理解底層機制。允許這種鏈接強制一個MapR在鏈接時寫入HDFS的Oozie等框架,還是可以將它保存到磁盤中? – pythonic