我正在運行一些實驗來測試使用不同參數讀取和處理存儲在HDFS上的數據所花費的時間(通過map-reduce)。我使用豬腳本來啓動map-reduce作業。由於我經常使用同一組文件,因此我的結果可能因文件/塊緩存而受到影響。Hadoop - 數據塊緩存技術
我想了解map-reduce環境中使用的各種緩存技術。
可以說存儲在HDFS上的文件foo
(包含一些要處理的數據)佔用了HDFS塊的1
,並且它被存儲在機器STORE
中。在map-reduce任務期間,機器COMPUTE
通過網絡讀取該塊並對其進行處理。在機器COMPUTE
內存/硬盤
- 緩存在機
STORE
(在內存中的文件緩存) - 緩存的內存:緩存可以在兩個層次發生。
我很肯定#1
緩存發生。我想確保是否發生類似#2
的事情?從here之後,看起來沒有客戶級緩存正在進行,因爲在清除緩存之前,在同一臺計算機上再次需要緩存COMPUTE
的塊不太可能。
此外,hadoop分佈式緩存僅用於將任何應用程序特定文件(而不是任務特定的輸入數據文件)分發到所有任務跟蹤器節點?或者是分佈式緩存中緩存的任務特定輸入文件數據(如foo
文件塊)?我假設local.cache.size
和相關參數只控制分佈式緩存。
請說明。
感謝您的澄清。 – sachin2182 2013-02-24 18:19:32