2011-05-16 38 views
2

我正在使用我的reducer將數據輸入到MySQL中。 我擔心的是,在某些情況下,同一個密鑰會同時啓動多個reducer。在這種情況下,數據庫可能會被相同的數據更新兩次。 有沒有辦法防止這種情況發生?使用Hadoop更新MySQL

在這種情況下關閉SQL連接中的自動提交模式是否合理?

回答

0

我覺得這種情況與自動提交沒有任何關係。如果它們不是太多,並且不花費大量的開銷,那麼忽略它們是因爲它們不會破壞一致性。你所有的reducer都在執行SQL查詢,你怎麼能阻止他們爲同一個鍵執行查詢?我認爲你應該在你的mapreduce函數中解決這個問題,因爲這不是DBMS可以處理的情況,因爲它所做的只是在數據庫中執行給定的查詢。

+0

的問題基本上是由運行在2個減速引起的同樣的密鑰集...所以唯一可用的其他解決方案可能有一些沒有發生......但不知道我是否可以配置hadoop來做到這一點。 – griffin 2011-05-17 00:19:25

0

找到了解決辦法...這是關閉推測執行