您好,登錄后才能下訂單哦!
摘要:2018第九屆中國數據庫技術大會,阿里云高級技術專家、架構師封神(曹龍)帶來題為大數據時代數據庫-云HBase架構&生態&實踐的演講。主要內容有三個方面:首先介紹了業務挑戰帶來的架構演進,其次分析了ApsaraDB HBase及生態,最后分享了大數據數據庫的實際案例。
講師介紹:
封神,真名曹龍,09年加入阿里,現任阿里云高級技術專家、架構師,專注于大數據分布式計算、數據庫、存儲領域,先后研發上萬臺Hadoop、ODPS集群,負責阿里YARN、Spark及自主研發內存計算引擎,目前為廣大公共云用戶提供專業的云HBase數據庫及計算服務。
正文演講:
業務的挑戰
存儲量量/并發計算增大
現如今大量的中小型公司并沒有大規模的數據,如果一家公司的數據量超過100T,且能通過數據產生新的價值,基本可以說是大數據公司了 。起初,一個創業公司的基本思路就是首先架構一個或者幾個ECS,后面加入MySQL,如果有圖片需求還可加入磁盤,該架構的基本能力包括事務、存儲、索引和計算力。隨著公司的慢慢發展,數據量在不斷地增大,其通過MySQL及磁盤基本無法滿足需求,只有分布式化。 這個時候MySQL變成了HBase,檢索變成了Solr/ES,再ECS提供的計算力變成了Spark。但這也會面臨存儲量大且存儲成本高等問題。
非結構化業務增多
另外一個趨勢就是非結構化的數據越來越多,數據結構的模式不僅僅是SQL,時序、時空、graph模式也越來越多,需要一些新的存儲結構或新的算法去解決這類問題,也意味著所需要做的工程量就會相對較高。
引入更多的數據
對于數據處理大致可歸類為四個方面,分別是復雜性、靈活性、延遲<讀,寫>和分布式,其中分布式肯定是不可少的,一旦缺少分布式就無法解決大規模問題 。靈活性的意思是業務可以任意改變的;復雜性就是運行一條SQL能夠訪問多少數據或者說SQL是否復雜;延遲也可分為讀與寫的延遲。Hadoop & Spark可以解決計算復雜性和靈活性,但是解決不了延遲的問題;HBase&分布式索引、分布式數據庫可以解決靈活性與延遲的問題,但由于它沒有很多計算節點,所以解決不了計算復雜性的問題。Kylin(滿足讀延遲)在計算復雜性與延遲之間找了一個平衡點,這個平衡點就是怎樣快速出報表,但對于這個結果的輸入時間我們并不關心,對于大部分的報表類的需求就是這樣的。每個引擎都有一定的側重,沒有銀彈!
ApsaraDB HBase產品架構及改進
應對的辦法
我們也不能解決所有的問題,我們只是解決其中大部分的問題。如何找到一個在工程上能夠解決大部分問題的方案至關重要,應對辦法:
分布式:提供擴展性
計算力延伸:算子+SQL,從ECS到Spark其本質其實就是一種計算力的延伸
分層設計:降低復雜性,提供多模式的存儲模型
云化:復用資源&彈性,降低成本
基本構架
首先包含了兩個分離
·分別是HDFS與分布式Region\分布式檢索分離
·SQL\時空\圖\時序\Cube與分布式Region\檢索分離
大致的分層機構如下:
· 第一層:介質層,熱SSD介質、溫SSD&SATA 混合、冷純SATA(做EC)
· 第二層:分布式文件系統,也就是盤古。事實上越是底層越容易做封裝優化。
· 第三層:分布式安全隔離保障層QOS,如果我們做存儲計算分離,就意味著底層的三個集群需要布三套,這樣每個集群就會有幾十臺甚至幾百臺的節點,此時存儲力是由大家來均攤的,這就意味著分布式安全隔離保障層要做好隔離性,引入QOS就意味著會增加延遲,此時會引入一些新的硬件(比如RDMA)去盡可能的減小延遲。
· 第四層:分布式?文件接?:HDFS & API(此層看情況可有可無)
· 第五層:我們提供了兩個組件,分布式Region-HBase與分布式檢索-Solr,在研究分布索引的時候發現單機索引是相對簡單的,我們提供針對二級索引采取內置的分布式Region的分布式架構,針對全文索引采取外置Solr分布式索引方案
· 第六層:建設在分布式KV之上,有NewSQL套件、時空套件、時序套件、圖套件及Cube套件
另外,可以引入spark來分析,這個也是社區目前通用的方案
解決成本的方案
對于解決成本的方案簡單介紹如下:
· 分級存儲:SSD與SATA的價格相差很多,在冷數據上,我們建議直接采取冷存儲的方式 ,可以節約500%的成本
· 高壓縮比:在分級存儲上有一個較好的壓縮,尤其是在冷數據,我們可以提高壓縮比例,另外分布式文件系統可以采取EC進一步降低存儲成本,節約100%的成本
· 基礎設施共享:庫存壓力分擔,云平臺可以釋放紅利給客戶
· 存儲與計算分離:按需計費
· 優化性能:再把性能提升1倍左右
云數據庫基本部署結構
假設在北京有三個機房可用區A、B和C,我們會在可用區A中部署一個熱的存儲集群,在北京整體區域部一個冷的存儲集群,實際上有幾個可用區就可以有幾個熱集群,主要是保障延遲的;冷集群對延遲相對不敏感,可以地域單獨部署,只要交換機滿足冷集群所需的帶寬即可。這樣的好處是三個區共享一個冷集群,就意味著可以共享庫存。
ApsaraDB HBase產品能力
我們提供兩個版本,一是單節點版,其特點是給開發測試用或者可用性不?,數據量不大的場景。二是集群版本其特點是高至5000w QPS,多達10P存儲與高可靠低延遲等。
· 數據可靠性:99.99999999%:之所以可靠性可以達到如此之高,其核心的原因就是存儲集群是單獨部署的,其會根據機架等進行副本放置優化
· 服務可用性:單集群99.9% 雙集群99.99%。
· 服務保障:服務未滿足SLA賠付。
· 數據備份及恢復。
· 數據熱冷分離\分級存儲。
· 企業級安全:認證授權及加密。
· 提供檢索及二級索引及NewSQL能?。
· 提供時序/圖/時空/Cube相關能?。
· 與Spark無縫集成,提供AP能?。
數據備份及恢復
備份分為全量備份HFile與 增量量備份HLog;恢復分為HLog轉化為HFile和BulkLoad加載。阿里云集團迄今為止已經有一萬兩千多臺的HBase,大部分都是主備集群的,在云上由于客戶成本的原因,大部分不選擇主備,所以需要對數據進行備份。其難點在于備份需要引入計算資源,我們需要引入彈性的計算資源來處理備份的相關計算任務
Compaction 離線Compaction(研究中)
我們在內部研究如何通FPGA對Compaction進行加速,這會使得集群運行比較平緩,特別是對計算資源少,存儲量大的情況下,可以通過離線的作業處理Compaction。
組件層
我們有5中組件,NewSQL(Phoenix)、時序OpenTSDB、時空GeoMesa、圖JanusGraph及Cube的Kylin,及提供HTAP能力的Spark。這里簡單描述幾個,如下:
NewSQL - Phoenix
客戶還是比較喜歡用SQL的,Phoenix會支持SQL及二級索引,在超過1T的數據量的情況下,對事務的需求就很少(所以我們并沒有支持事務);二級索引是通過再新建一張HBase表來實現的。在命中索引的情況下,萬億級別的訪問基本在毫秒級別,但由于Phoenix聚合點在一個節點,所以不能做Shuffle類似的事情,同時也就不能處理復雜的計算,所以任何說我是HTAP架構的,如果不能做Shuffle,就基本不能做復雜的計算。
HTAP – Spark
在HTAP-Spark這部分主要介紹一下RDD API、 SQL、直接訪問HFile的特點。
· RDD API具有簡單?便,默認支持的特點,但高并發scan大表會影響穩定性;
· SQL支持算?子下推、schema映射、各種參數調優,高并發scan大表會影響穩定性;
· 直接訪問HFile,直接訪問存儲不經過計算,大批量量訪問性能最好,需要snapshot對齊數據。
時序 – OpenTSDB & HiTSDB
TSD沒有狀態,可以動態加減節點,并按照時序數據的特點設計表結構,其內置針對浮點的高壓縮比的算法,我們云上專業版的HiTSDB增加倒排等能?,并能夠針對時序增加插值、降精度等優化。
大數據數據庫的實際案例
以下簡單介紹幾個客戶的案例,目前已經在云上ApsaraDB HBase運行,數據量基本在10T以上:
某車聯網公司
這是一個車聯網的客戶,有100萬車,每輛車每10秒上傳一次,每次1KB,這樣一年就有300T數據,六個月以上是數據低頻訪問,所以他要做分級存儲,把冷數據放到低介質上
某大數據控公司
這是一個大數據控公司,它大約有200T+的數據量,將HBase數據 (在線實時大數據存儲)作為主數據庫,先用HBase做算法訓練,再用HBase SQL出報表,另外做了一套ECS進行實時查以便與客戶之間進行數據交換。
某社交公司
社交會有大量的推薦,所以SLA要求高達99.99,并采用雙集群保障,單集群讀寫高峰QPS 可以達到1000w+,數據量在30T左右。
某基金公司
這是一個金融公司,它有10000億以上的交易數據,目前用多個二級索引支持毫秒級別的查詢,數據量在100T左右
某公司報表系統
先離線建好Cube再把數據同步到HBase中,實時數據通過Blink對接進行更新,數據量在可達20T左右
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。