我正在使用Hadoop的ETL工作,我需要輸出有效,轉換後的數據到HBase的,而該數據到MySQL外部指標。我最初的想法是,我可以使用MultipleOutputFormats用HFileOutputFormat(關鍵字是Text並且值是ProtobufWritable)和TextOutputFormat的索引(關鍵字是Text,值是Text)來導出轉換後的數據。Hadoop的MultipleOutputFormats到HFileOutputFormat和TextOutputFormat
的輸入記錄的平均大小的就業人數(我需要同時運行很多的能力)爲700萬美元。
我想知道如果A)這似乎是在效率和複雜性而言,一個合理的做法,和B)如何與CDH3分佈的API,如果可能做到這一點。
我使用CDH3u3,它具有MultipleOutputs。我會嘗試的。你認爲一般的方法是高性能的嗎?還有其他建議嗎?我不想顯然執行第二項工作,因爲我已經在減速器的RAM中存儲了所有的數據。 – ja87 2012-02-26 22:09:46
我個人沒有使用MultipleOutputs,但我懷疑它會非常高效。至少比運行第二份MR作業更有效。我對這種方法的建議是注意你的泄漏。如果您不再對數據進行第二次掃描而獲得性能,那麼您的工作量就會增加一倍,這可能會導致泄漏事件增加一倍。我會運行MultipleOutputs運行作業的實驗,並將作業作爲兩個獨立的作業運行,以查看哪些作業更具性能。 – 2012-02-27 05:08:21