0
我試圖使用Hadoop來讀取數據,然後回寫到MySql。但是,似乎我只能做插入。如果我嘗試使用相同的主鍵(它意味着更新)回寫,將出現「主鍵複製XXX」的錯誤。是否有人解決了這個問題?是否可以更新?非常感謝!無法通過Hadoop更新MySql,只能插入
我試圖使用Hadoop來讀取數據,然後回寫到MySql。但是,似乎我只能做插入。如果我嘗試使用相同的主鍵(它意味着更新)回寫,將出現「主鍵複製XXX」的錯誤。是否有人解決了這個問題?是否可以更新?非常感謝!無法通過Hadoop更新MySql,只能插入
您是否正在使用Sqoop或在Map/Reduce任務中使用SQL語句?看起來像多個reducer或單個reducer一次又一次地使用相同的主鍵寫入數據您必須重新設計map/reduce任務或數據庫模式以消除錯誤
在reducer中,它是如何知道是否需要更新或插入?是否在數據庫中檢查了具有相同主鍵的行,然後插入或更新完成?
應用程序設計必須詳細瞭解才能解決問題。
從M/R作業插入數據庫時,如果鍵是要插入的表中的主鍵,那麼將reduce任務設置爲1將始終有用。如果你不在意,做一個「重複密鑰更新/忽略」 –
@Thomas - 當Reducer Key = Table的主鍵時,如何讓一個Reducer有幫助?我想,這應該不重要。 –
由於Hadoop在reduce步驟中注意密鑰是不同/唯一的,因此防止了數據庫中的衝突。 –