阿里5位嘉賓3個分享:HBaseCon Asia 2017干貨滿滿
原創HBaseCon是Apache HBase官方舉辦的技術會議,主要目的是分享,交流HBase這個開源分布式大數據存儲的使用和開發以及發展。HBaseCon發起于2012年。通常HBaseCon的舉辦地是在美國,這是HBaseCon***次在亞洲舉行,命名為Apache HBaseCon 2017 Asia。而且這次會議舉辦地選擇在中國深圳,也足以見得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、開發更NB的產品,歡迎聯系我們(正研,zhengyan.ywl@alibaba-inc.com),一起交流,互相學習!
作者簡介:
楊文龍,花名正研,阿里巴巴存儲技術事業部資深研發,HBase開源社區Committer。開源技術愛好者,對分布式存儲系統的設計、實踐具備豐富的大規模生產的經驗。