2013-09-27 25 views
0

每個cachedDistributed文件在map-reduce程序中有多少開銷?我有一個mapreduce程序,其中我需要有50個cachedDistributed文件(非常小的尺寸),看起來它們的開銷遠遠大於我只有1個cachedDistributed文件的情況。真的嗎? 據我瞭解,cachedDistributed文件複製到每臺運行映射器的機器,因此對cachedDistributed文件的訪問是本地的,不應該有太多的開銷。一個cachedDistributed文件在一個mapreduce程序中有多少開銷?

回答

0

我想你可能會嘗試使用存檔文件(文件在任務節點上自動取消存檔)。 您可以通過存檔文件添加到DistributedCache是​​指:

  • 藉助工具使用GenericOptionsParser。然後,您可以將要分發的文件指定爲以逗號分隔的URI列表作爲-archives選項的參數。如果您未指定方案,則假定這些文件是本地文件。所以,當你啓動作業,本地文件複製到文件系統分佈(往往HDFS)

    $> hadoop jar foo.jar ClassUsingDistributedCacheFile -archives archive.jar input output

  • 與分佈式緩存API(見的Javadoc)。通過API,通過URI中指定的文件必須在共享文件系統(因此Java API不會複製該文件。

運行任務之前,向TaskTracker副本從分佈式文件系統中的文件就像你說的那樣,我認爲這個開銷來自檢索HDFS中的所有小文件

相關問題