2010-11-29 37 views
0

與主題讀取一樣,獲得專用硬件來運行hadoop集羣而不是VM很重要嗎?如果是,什麼是可接受的網絡延遲?你需要有千兆以太網嗎?我想利用hadoop來加速ETL過程。在嘗試這樣做時,我設置了幾個虛擬機(512-1GB RAM,每個虛擬機的雙核2.2Mhz CPU),它們之間相距約500英里,100Mpbs以太網上的網絡延遲爲10-25毫秒。我無法爲我的ETL過程匹配單個機器性能,並有3-4個虛擬機作爲節點。所以,我想我會在這裏提出這個問題以獲得更多的見解。在地理位置的虛擬機上運行地圖縮小 - hadoop集羣的這種設置有多糟?

回答

1

這在很大程度上取決於你的任務,但是,總體來說,這是所有重要的 - 包括網絡延遲,帶寬,CPU負載/可用性,

我能想象幾種情況中,網絡帶寬將不是很重要 - 對例如,如果你已經將你的數據數組加載到HDFS中,也就是說,它清晰地分佈在所有節點上,並且你將在映射器中對這個數組做一個複雜的計算,根本不需要減法器,這些數據將轉化爲縮減者。例如,如果您要計算文本文件中的行數,映射器將讀取多GB的文件,並只將一個簡單數字推送到reducer - 行數。 Reducers將總結這些數字並在輸出中推送單個答案。它幾乎沒有通過網絡傳輸=>對性能沒有影響。

但是,在現實生活中,你很少遇到這樣的任務。通常有一些組 - 通過在映射器和簡化器之間進行,因此大部分每組計算都由簡化器執行 - 即簡化器不得不從映射器傳輸所有數據,通常使用網絡。

如果您將更多地瞭解您的任務,我可以更詳細地估計您要使用的硬件以及當前解決方案的弱點。

+0

謝謝你的回答。我將其遷移到了一個有6個節點的HP刀片服務器集羣,並且我看到VM集羣的性能提高了400%。就像「Pro Hadoop」所說的那樣 - 我想你總是需要機架安裝的服務器級機器才能獲得最佳效果。 – Jay 2010-12-27 10:22:47

0

專用硬件總是很重要。
你的虛擬機絕對沒有足夠的內存,網絡延遲會很重要,但對於3-4個節點,100Mbps可能就足夠了。