2015-06-29 61 views

回答

0

DistributedCache是​​由Map-Reduce框架提供的用於緩存應用程序所需文件的工具。一旦爲作業緩存了一個文件,hadoop框架就會在映射/減少任務運行的每個數據節點上(文件系統中,而不是內存中)使用它。這些文件通常通過HDFS通過網絡傳輸。對於任何非數據本地任務,它都不會比使用HDFS造成更大的網絡壓力。

+0

謝謝,所以你說,通過網絡傳輸數據已經是一個開銷。但是訪問遠程或非本地數據對性能有更多影響? –

+0

說明:http://stackoverflow.com/questions/13061187/distributed-cache-and-performance-hadoop –

+0

請注意,數據從本地磁盤傳輸到hdfs之前。由於程序未啓動,因此不計入性能。之後,您的地圖縮減程序開始運行,並且它會運行(或嘗試)數據的位置,但不會使數據進行編程。但是map任務的輸出確實被傳遞給了reducer,combiner可以用來減少這個數量。 – K246

0
  1. 程序運行時沒有很多文件傳輸。想法是儘量減少網絡數據傳輸。這就是計算接近數據的原因。
  2. 分佈式緩存是所有映射或減少任務所需的數據,不像普通數據,只需要部分數據(任務拆分)即可。這就是爲什麼它分發到運行任務的所有節點。