關於Hadoop結合RDBMS應用的一些思考

2022-04-19 04:01:56 字數 1608 閱讀 6502

最近一段時間一直在從事和hadoop相關的工作,主要是技術內容學習、安裝配置優化以及一些框架結構的設計。在此期間,我對於rdbms和hadoop的結合應用有了一些自己的看法,寫出來大家共同**一下。

1、為什麼要用hadoop

這個在網上已近有很多的人說過這個問題,我在這裡就不多述了。但是我想說下,對於乙個工具而言,只有最合適的應用場景沒有最牛的工具。hadoop對我而言也只是乙個工具,所以,更多的時候我是從業務角度出發去考慮hadoop能給我帶來什麼。

2、rdbms?

rdbms是關係型資料庫英文縮寫,但對於我而言,就是oracle(因為我現在的公司用就是)。關於rdbms和nosql誰更好這個話題爭論的太多了,我也看了不少。但是我個人的感覺是,當前的rdbms做的工作想用hadoop來替代,基本是不可能,二者只能是互補互助,才能和諧共進(構建和諧社會,哈哈)。

3、資料倉儲和資料庫

就我個人的理解,資料倉儲更傾向於資料的挖掘和分析,對實時性要求較低。而資料庫則是對實時性響應較高,做為資料探勘而言,雖然就目前當前看來是可以勝任,但是一旦資料量龐大(tb級別資料甚至pb級別),直接結果將是資料檢索速度急劇下降,一些oracle執行的的挖掘job都有可能跑不出結果。所以,這也是為什麼我在思考如何將hadoop和rdbms結合應用的原因。廢話不多說了,自己畫了個草圖大家先看看:

4、總體思想

由於工作環境和工作內容的特殊性,我這裡並不涉及到大併發訪問,所以,只要滿足實時性的查詢和資料探勘即可。基於上圖,我的總體思想如下:

a、將資料來源在輸入的時候就對資料進行拆分,一些側重於資料分析和對實施響應要求較低的資料檔案劃分為「低實時性資料」。將一些相應速度要求較高的資料檔案劃分為「高實時性資料」。當然,這樣劃分可能資料之間可能會有交集,也就是說存在資料重複存放的可能性,所以,劃分的具體原則需要結合業務詳細制定。

b、「低實時性資料」存入hdfs檔案系統,採用m/r或是hive來進行一些挖掘的工作。而「高實時性資料」則存放在傳統的rdbms中,用以響應使用者的實時查詢需求。

c、hadoop挖掘的資料結果可以協商好的格式存放到rdbms中,提供為資料分析的基礎。實際上,可以理解是hadoop對資料內容進行的預處理,rdbms則是在該結果的基礎上進行高階功能(分析、比對、資料碰撞等)內容展示和二次分析。

d、使用者也可直接的傳送指令給hadoop,進行一些特殊的資料探勘工作,結果不需要存放到rdbms中,直接反饋到使用者web介面。(圖上沒表現出來)

5、總結

a、當前這樣的應用模型可能會帶來一些冗餘資料,但是至少緩解了一些當前rdbms的壓力。

b、我最早也想過完全替換rdbms,對於實時的查詢我想採用hbase,但是在一段時間之後我發現hbase對一些查詢支援的並不好。這裡專門提出來也是希望大家能夠給我解疑答惑,對於hbase如何應用是合適的?或者說在這個模型中是否還有hbase的位置?

綠悠悠發帖於 3年前

4回/3060閱

標籤:

hadoop

0收藏(5)00

00

關於Hadoop結合RDBMS應用的一些思考

最近一段時間一直在從事和hadoop相關的工作,主要是技術內容學習 安裝配置優化以及一些框架結構的設計。在此期間,我對於rdbms和hadoop的結合應用有了一些自己的看法,寫出來大家共同 一下。1 為什麼要用hadoop 這個在網上已近有很多的人說過這個問題,我在這裡就不多述了。但是我想說下,對於...

關於Hadoop結合RDBMS應用的一些思考

最近一段時間一直在從事和hadoop相關的工作,主要是技術內容學習 安裝配置優化以及一些框架結構的設計。在此期間,我對於rdbms和hadoop的結合應用有了一些自己的看法,寫出來大家共同 一下。1 為什麼要用hadoop 這個在網上已近有很多的人說過這個問題,我在這裡就不多述了。但是我想說下,對於...

hadoop和傳統rdbms的比較(翻譯)

翻譯自 hadoop權威指南 和rdbms的比較 為什麼我們不能在許多磁碟上運用資料庫機型大規模批量分析?為什麼mapreduce是不可或缺的?問題的答案來自於另乙個磁碟的發展趨勢 尋道時間的提高遠不如傳輸速率的提高。尋道是磁碟頭移動到指定位置的過程,並在其讀寫資料。它使磁碟操作具有延遲效應,而傳輸...