大數據時代必修技能 阿裏HBase又放出了哪些大招?
HBaseCon是Apache HBase官方舉辦的技術會議,主要目的是分享,交流HBase這個開源分布式大數據存儲的使用和開發以及發展。HBaseCon發起於2012年。通常HBaseCon的舉辦地是在美國,這是HBaseCon第一次在亞洲舉行,命名為Apache HBaseCon 2017Asia。而且這次會議舉辦地選擇在中國深圳,也足以見得HBase在中國的火爆程度和中國開發者們對HBase社區所做的卓越貢獻。
Apache HBase是基於Apache Hadoop構建的一個分布式、可伸縮的Key-Value數據庫,它提供了大數據背景下的高性能的隨機讀寫能力。做為最早研究、使用和二次開發HBase技術的中國公司,阿裏巴巴從2010年就開始使用HBase,經過近7年的發展,現在采用HBase存儲的業務已經超過1000+,擁有了上萬台的HBase集群規模,在HBase上存儲的數據已達PB級。
秉承開源和分享的精神,阿裏把HBase的實踐經驗和改進不斷回饋HBase社區,比如說Bucket Cache和Reverse Scan等功能,給HBase技術發展帶來了非常深遠的影響。同時,也給HBase社區培養了2名PMC和2名Committer,阿裏在HBase社區的影響力可見一斑。那麼這次HBaseCon 2017 Asia。阿裏派出了一位HBase PMC和2位Committer,還有兩位資深的HBase開發,給大家帶來了十足的幹貨。
一、強同步複製
傳統的HBase主備集群同步使用的方案是異步複製,這使得主備集群數據之間會有短暫的數據不同步現象。用戶為了災備,不得不放棄強一致模型。沒法放棄強一致語義的用戶,必須自己寫一套複雜的邏輯來保證主備集群之間數據的讀寫一致性。阿裏的HBase技術專家天引,在此次的HBaseCon Asia上給大家帶來了強同步複製方案。
據天引介紹,強同步複製方案采用了主備並發寫和RemoteLog技術,使得在同城網絡條件下同步複製相對於異步複製僅有2%的吞吐量下降。當一個請求到達主庫後,並發寫本地和備庫,到達備庫的同步寫不需要走完整的寫入路徑,而是直接寫入RemoteLog,降低同步寫開銷與延時。除了同步鏈路外,還有一套異步鏈路將數據從主庫複製到備庫,因此正常情況下不需要回放RemoteLog的數據到備庫,在主庫不可服務的情況下,隻需要回放RemoteLog中那些還沒有被異步複製鏈路同步到備庫的數據,異步複製隻有幾秒鍾的數據延遲,這保證了可以在很短的時間內完成從主庫到備庫的切換。
此方案在大會現場引起了強烈反響,很多HBase用戶表示這是他們期待已久的功能,希望能盡快使用上。天引表示此功能目前基於阿裏內部分支實現、運行及完善,未來將會回饋給社區。
二、SQL on HBase
阿裏HBase服務了大量的內部用戶,並持續有新用戶接入。但是使用HBase的用戶有很大一部分是從傳統的SQL數據庫轉過來的,HBase的rowkey設計和API的使用習慣對於他們來說並不友好。為了降低這些轉型用戶的使用門檻,阿裏在HBase上引入了SQL層。來自阿裏的資深HBase開發工程師天穆,給大家詳細講解了如何玩轉SQL on HBase。
通過優化,現在在阿裏使用SQL訪問HBase和原生API的速度已經相差無幾,而且在SQL語法上,創造性地支持HBase多版本和時間戳等NoSQL才具有的功能。
另外,在HBase上同時支持了全局二級索引和本地二級索引。使用戶可以在多列上建立索引,簡化了業務的設計,提升了請求效率,降低了使用成本。
三、跨集群分區拷貝
HBase上通常承載著海量的數據,而在日常生產過程中,隨著業務的發展和公司數據中心的規劃等原因,這些海量數據需要經常搬遷,這通常對於運維來說是一個非常頭疼的問題。來自阿裏的HBase社區Committer正研,分享了阿裏跨集群分區拷貝的場景和成熟解決方案。
正研首先介紹了在阿裏內部常見的需要數據拷貝的場景,比如說新建數據中心,HBase集群需要整體搬遷到新的機房;又比如說不同機房內的HBase集群的增量數據同步,可以用replication來解決,但是對於存量數據,目前還沒有比較高效的方案;另外還一個常見場景就是數據恢複,而傳統的HBase備份還原工具都沒法控製數據恢複的範圍。
因此,阿裏研發了Range Data Copy功能內置在HBase中,提供了一個簡單高效,而且能夠自動處理各種錯誤情況和災難恢複的數據拷貝功能,使用這個功能拷貝一張200TB的表到另外一個集群,所需時間不到5小時。
四、讀寫鏈路優化
在阿裏使用HBase的過程中,對HBase本身做了非常多的讀寫性能優化。來自阿裏的HBase社區PMC絕頂和Committer天照,一起給大家分享了阿裏在這方麵所取得的一些成果。
1、使用Netty替代HBase原生的RPC server,大大提升了HBaseRPC的吞吐能力,降低了延遲 ;
2、 引入新的HFileBlock編碼格式,把順序搜索變成了二分查找,提高了HBase隨機讀的能力
3、拆分寫鏈路,釋放阻塞的handler資源,提高了HBase寫的吞吐能力 ;
來自阿裏的這些優化黑科技,使HBase的能力又更上一個新台階。並且這些優化和功能目前已經回饋給了社區,所有的HBase用戶都能在新版本的使用獲得這些技術紅利。
除了阿裏帶來的技術分享,現場許多其他公司也都帶來了他們對HBase做出的改進和使用經驗。比如說小米實現了AsyncClient,填補了HBase沒有原生異步API的缺口;知乎使用kubernetes自動擴容縮容HBase集群,靈活地適應業務高速發展和瞬息萬變;烽火網絡隔離讀寫資源使近線查詢更加穩定等等。
除了上述提到的這幾個亮點技術分享,此次HBaseCon大會的每一個session都非常精彩,給大家帶來了一場又一場思維碰撞的盛宴。Apache HBase“掌門人”Michael Stack也參加了此次會議,並與HBase開發者們舉行了一次圓桌會議,共同探討HBase的現狀和未來。
這次HBaseCon的火爆程度,直接展示了國內企業和開發者們對HBase熱情和期望。HBaseCon大會不僅給HBase的使用者們帶來了最新鮮的技術進展,互通有無,吸收其他公司的先進經驗;也成為HBase使用者和開發者之間溝通的橋梁,能讓開發者們看到業界動態,用戶的需求,共同把HBase打造成一個更加易用,更高性能,更穩定的大數據存儲。這次HBaseCon大會是一個很好的開端,期望HBaseCon Asia越辦越好,給大家帶來更多的幹貨!
雲端使用
阿裏HBase目前已經在阿裏雲提供商業化服務,任何有需求的用戶都可以在阿裏雲端使用深入改進的、一站式的HBase服務。雲HBase版本與自建HBase相比在運維、可靠性、性能、穩定性、安全、成本等方麵有較多的改進。具體表現為,在運維方麵:15分內完成部署,全指標監控預警,在線擴容節點、磁盤及修改配置,集群自動更新升級,專家在線坐診;性能方麵:性能提升30%以上,個別scan等性能提升100%+;可靠性方麵:多副本機製,副本丟失及時感知檢測恢複,提供9個9個數據可靠性;穩定性方麵:進程自動守護,單節點秒級別檢測並自動故障遷移,提供99.95%集群可用性;成本方麵:後續支持共享存儲,存儲成本下降一倍以上;安全方麵:提供白名單隔離,支持VPC,後續支持阿裏雲ak,更多內容歡迎大家關注https://www.aliyun.com/product/hbase
楊文龍,花名正研,阿裏巴巴存儲技術事業部資深研發,HBase開源社區Committer。開源技術愛好者,對分布式存儲係統的設計、實踐具備豐富的大規模生產的經驗。
來源:阿裏技術
原文鏈接
最後更新:2017-08-13 22:22:33