本次分享會給大家系統地介紹10P+金融數據遷移的整個過程。下面是對這次線上分享的文字總結,希望對想了解HBase跨機房遷移技術的網友有幫助。
一、HBase知識介紹
考慮到來聽分享的大部分都是MySQL DBA,因此這里做了個簡單的HBase相關介紹,主要介紹了如下三個方面的內容:
1、HBase簡介
HBase是基于google bigtable的開源實現,又稱為hadoop database,具有高性能、高可用、易伸縮等特點,是一個面向列的分布式存儲系統,可以在廉價PC Server的機器上搭建海量存儲服務。
隨著數據量的不斷增大,查詢和寫入的性能并不會出現明顯的下降,可以說是目前各大企業構建數據中心很好的選擇。
2、HBase的優缺點
HBase的優點
總結了HBase的幾個優點如下:
列可以動態增加
其實更準確的說,HBase是面向列族的數據庫,一個表可以有多個列族,而每個列族下面可以有非常多的列,也就是說列族下面的列可以動態增加或者減少。
卓越的寫入性能
HBase采用的是LSM類型系統結構,寫入都是先寫內存,后面再異步批量刷新到磁盤,因此寫入性能非常好。并且這種寫入性能很容易通過擴容機器提升。
海量存儲
HBase就是為海量存儲而生的,由于其優秀的架構設計,使得數據量的不斷增長,在查詢時延方面并不會下降特別多。因此HBase在海量數據的場景下,優勢非常明顯。
極易擴展
HBase由于其架構的特性(后端采用HDFS存儲,借助ZK的相關特性),HBase極易擴展,通過添加節點,來增加存儲量和提升寫入性能,使得HBase極具伸縮性。
HBase的缺點
總結了HBase的缺點如下:
HBase原生不支持SQL
HBase原生并不支持SQL,業務接入HBase需要通過接口做一些改造,這在一定程度上還是不太友好。雖然目前有一些組件也為HBase提供一些接口支持,比如phoenix。但是就我們的測試來看,穩定性仍然是一個很大的問題。
查詢延遲比DB大
HBase比較多的應用是通過廉價的PC Sever構建海量存儲服務,而目前DB的標配基本都是SSD盤,DB的延遲可以做到0.x個毫秒,而基于廉價PC Server構建的海量存儲服務的延遲一般在幾十毫秒到上百毫秒之間。
當然HBase也可以采用SSD盤來構建海量存儲,但這種成本就比較高。目前HBase已經支持了異構存儲功能,可以將熱數據存儲到SSD,冷數據存儲到SATA,這是一個很好的方案。
RegionServer單點
運維過RegionServer的同學都可能深有體會,表的某一個region只能分配到某一臺RegionSever的機器上,因此,當某一臺RegionServer異常的時候,上面的Region肯定會有影響,尤其是當一個RegionServer上有超過1000個region的時候,影響可能會達到幾分鐘。這個單點的問題還是一個比較大的硬傷。
目前HBase2.0版本已經引入了Region Replica的支持,但是由于需要更多的資源和強讀一致性的問題,業界真正在生產環境使用這個功能的非常少。比較多的是采用集群容災方式,在業務層做切換,目前我們就是采用這種方式,以減少單個RegionServer異常對業務造成影響。
3、HBase架構
HBase的架構圖如下:
上面是比較經典的HBase架構圖,偷個懶,直接借來用一下,從圖中我們可以看出HBase的架構層次還是很清晰的。可以把這個架構分成三層來看(暫時把Zookeeper和Master忽略):
第一層:客戶端層
客戶端層主要是業務發起的地方,可以是寫入發起端,也可以是業務查詢端,這個比較好理解,就是HBase的調用方。
第二層:RegionServer層
RegionServer提供所有訪問層的功能,你可以簡單地理解為那一層是路由層、緩存層、引擎層等。所有對HBase的讀寫請求都需要經過RegionServer層。
第三層:存儲層
HBase底層采用HDFS作為存儲層,所有的數據都存儲在HDFS,前面說的HBase極具伸縮性,很大程度上得益于底層采用的HDFS存儲。
4、一個DBA都能理解的HBase使用場景
上面講了那么多,那么HBase到底是怎么使用的?
其實HBase可以用在很多的場景中,比較消息訂單、時序DB、對象存儲、推薦畫像等。這里講一個DB最能理解的使用場景,那就是存儲需要長久保存的海量歷史數據。
比如:對于金融數據,由于監管的要求,至少需要保留5年,對于支付的訂單、支持流水等數據,本身數據量非常大,并且歷史數據還有查詢需求。
這種數據如果保留在關系型的DB中,歷史DB的擴容、遷移、維護,還有訪問將會是DBA的噩夢。但是如果這種數據保留在HBase中,就會非常的方便。
二、HBase跨機房遷移
1、背景及挑戰
背景
這次HBase跨機房遷移的背景是機房裁撤,必須在規定的時間內把HBase集群從裁撤機房遷移到新機房。
挑戰
針對這次HBase跨機房遷移,我們主要面臨如下幾個挑戰:
經驗缺乏