2012-10-25 67 views
2

我想讓我對hadoop分佈式緩存清除有所瞭解。我知道當我們將文件添加到分佈式緩存時,這些文件會加載到羣集中每個節點的磁盤上。分佈式緩存和性能Hadoop

那麼文件的數據如何傳輸到集羣中的所有節點?它是否通過網絡?如果是這樣,它不會對網絡造成壓力嗎?

我有以下想法,它們是正確的嗎?

如果文件很大,會不會出現網絡擁塞?

如果節點數量很大,即使文件大小中等,複製文件和傳輸到所有節點,是否會導致網絡擁塞和內存限制?

請幫助我理解這些概念。

謝謝!

回答

5
  1. 是將文件通過網絡傳送的,通常是通過HDFS。對於任何非數據本地任務,它都不會比使用HDFS造成更大的網絡壓力。

  2. 如果文件很大,可能會造成網絡堵塞,但是您已經將jar包推送到所有這些任務跟蹤器,所以只要您的文件沒有比jar大的多,開銷不應該太糟糕。

  3. 這些文件的複製完全獨立於任務跟蹤器的數量,最終將導出該文件。複製將從一個節點鏈接到另一個節點,無論發生什麼,都將成爲具有容錯分佈式文件系統的代價。同樣,假設分佈式緩存中的文件與您的罐子大小相同,網絡擁塞不會比將您的jar推送到所有任務跟蹤器更成爲問題。只要分佈式緩存

總體開銷是微不足道的,因爲它是按照規定使用,以此來推動合理的小緩存的數據是本地的任務服務器做計算。

編輯:這裏是0.2035的DistributedCache文檔。請注意,這些文件是通過網址指定的。通常你會使用你本地的hdfs://設置。

+0

感謝您的解釋!它幫助了很多!對於我的應用程序,我想將大量中等小文件添加到分佈式緩存中。我實現了它,隨着文件數量的增加,我的程序降低了66%。分佈式緩存在reduce中被訪問。有什麼建議麼? –

+0

好像你應該把這些媒體文件的大小和數量壓縮成更專業化的格式。實際上,您可以爲此使用另一個MapReduce作業。 – ptc

+0

感謝您的幫助! –

0

我認爲你對分佈式緩存的理解是正確的。因爲我也這麼認爲:) 也許增加分佈式緩存的複製可以減少網絡傳輸

+0

感謝您的回覆! –