2012-02-07 49 views
2

當您爲Hadoop的Map/Reduce部分提供不同於HDFS的存儲(如MySql服務器等)時,數據局部性功能會發生什麼變化?換句話說,我的理解是Hadoop Map/Reduce使用數據局部性來嘗試在與數據相同的節點上啓動一個映射任務,但是當數據存儲在sql服務器中時,任務節點上沒有本地數據所有數據都在sql server節點中。那麼我們在這種情況下是否會丟失數據局部性,或者數據局部性的定義是否正在發生變化?如果它改變了,新的定義是什麼?不使用HDFS時的數據局部性

+0

Hadoop的哪一部分? MapReduce的? – 2012-02-07 04:31:36

+0

無法理解你的問題! – Debaditya 2012-02-07 04:55:43

+0

我更新了問題。希望現在更清楚。 – iCode 2012-02-07 06:12:37

回答

3

如果數據不在集羣中,則沒有數據位置。所有數據必須從遠程源複製。這與任務無法在包含HDFS中的數據的節點上運行的情況相同。有幾種使用遠程資源的輸入格式,包括S3,HBase和DB。如果你可以把你的數據放在HDFS中,那很好。我經常使用Mongo作爲遠程源,用於經常更新的少量數據,我對結果感到滿意。

+0

感謝您的回覆。請給我一些關於你的意思是少量數據的想法嗎?還有,你爲這個小版本推出了多少併發映射器?我只想得到一個整體的圖景。 – iCode 2012-02-07 06:56:26

+0

我最大的桌子在Mongo可能是20MB。我只使用1個映射器。您使用多少個映射器將依賴於您的分片。看看https://github.com/mongodb/mongo-hadoop。 – 2012-02-07 22:11:20

+0

我應該增加這個大小,這將工作在受網絡帶寬的約束。 – 2012-02-08 02:38:32

相關問題