2012-03-26 22 views
0

我知道可以通過hadoop從mongodb讀取和寫入數據。帶有mongodb插件的hadoop - 讀取數據

我想知道這個適配器從mongodb集合中讀取數據時使用的是mongodb的本地驅動程序,所以它使用mongod實例或者這個適配器讀取directy數據集合?

還有當hadoop讀取地圖中處理的mongodb數據減少時,hadoop的這個地圖縮減並不鎖定mongodb的數據收集?

換句話說,當hadoop讀取mongodb的數據時,hadoop將該數據保存爲hadoop使用,並且hadoop不干擾mongodb數據,因爲hadoop執行映射時它會減少由mongodb檢索的數據而保存在hadoop中的內部處理?

回答

1

沒有數據在Hadoop中使用mongo-hadoop插件進行緩存或保存。

取而代之的是,每個塊都作爲一個單獨的輸入拆分被讀入Hadoop中,以並行化Hadoop MapReduce作業。

在mongodb中發生的唯一鎖定是從Mongo讀取數據時的輕讀鎖定。

+0

謝謝!所以如果我理解正確,我可以安全地執行hadoop上的map reduce,因爲它可以處理hadoop中保存的數據。所以最初,如果hadoop讀取大數據集合,mongodb會讀取鎖定,一旦讀取了所有數據,mongodb中沒有任何內容被鎖定,並且hadoop對hadoop中保存的數據執行mapreduce。 – paganotti 2012-03-26 21:12:14