1. 程式人生 > >Hadoop MapReduce 與關係型資料庫的區別

Hadoop MapReduce 與關係型資料庫的區別

在比較兩者的區別之前,首先應該清楚,兩者的應用場景不同,在工業工程中兩者是互相補充的角色。

為什麼關係型資料庫不能通過增加磁碟的方式來擴充分析能力,而hadoop卻需要這麼做呢?原因在於,關係型資料庫主要應用於大量細粒化讀寫和更新資料的場景,而hadoop則主要用於批量讀寫(一次寫入多次讀取)的場景。對不連續的細粒度資料讀寫的效能主要取決於磁碟的尋道時間,連續大規模讀寫資料則取決於磁碟傳輸時間,兩者有數量級上的差別。

另外,關係型資料庫的資料應該是結構化的,而Hadoop(MapReduce)主要是非結構化或者半結構化的。結構化資料應當是結構性且無重複的。MapReduce的資料來源則沒有這樣的要求。

當資料規模非常大的時候,MapReduce可以通過增加節點的數量來減少時間消耗。因為MapReduce會將資料分塊,主要的功能性基元Map和Reduce又是可以並行的。所以,根據資料規模線性擴充套件叢集大小,就可以保證處理時間保持不變。

總之,關係型資料庫適合用於GB級以內的資料的高精度操作,MapReduce適合PB級及以上資料的低精度操作。且兩者現在正互相學習各自長處來完善自己。

關係型資料庫與MapReduce的對比
關係型資料庫系統 MapReduce
資料量 GB級 PB級
訪問方式 互動式或者批量式 批量式
更新形式 多次讀寫 一次寫入,多吃讀取
事務

原子性、一致性、隔離性、永續性

不支援
完整性
擴充套件性 非線性擴充套件 線性擴充套件

如有任何問題,請在下方留言,歡迎交流!