2013年11月22-23日,作為國內唯一專注于Hadoop技術與應用分享的大規模行業盛會,2013 Hadoop中國技術峰會(China Hadoop Summit 2013)于北京福朋喜來登集團酒店隆重舉行。 來自國內外各HTTP://www.aliyun.com/zixun/aggregation/17611.html">行業領域的近千名CIO、CTO、架構師、IT經理、諮詢顧問、工程師、Hadoop技術愛好者, 以及從事Hadoop研究與推廣的IT廠商和技術專家將共襄盛舉。
在SQL&NoSQL專場,來自小米的資深工程師劉紹輝做了《從關聯式Mysql到Nosql HBase的遷移實踐》演講。 詳細介紹了HBase,以及HBase在小米的使用,小米開發的重要特性和未來的開發計畫。
首先,劉紹輝在介紹HBase,他談到,小米從去年開始調研測試,目前已經十幾個業務接入到了HBase上,包括米聊消息的全存儲、MiCloud上短信通話記錄的同步、小米Push服務、以及一些離線的資料分析業務。
劉紹輝談到,典型的HBase集群包含了3到5個控制節點,5到n個的資料節點。 控制節點和資料節點的主要區別在磁片上,控制節點對磁片的容量要求並不是很高,主要是要求磁片要穩定。
▲典型的HBase集群
劉紹輝繼續介紹到,整個系統的自動化部署是小米自己開發的minos工具,直接在命令列操作,可以很簡單的創建集群、修改設定檔、升級集群、刪除集群等功能。 同時,minos也集成了一個監控的功能。 目前,這款工具已經在github上開源,小米內部使用的版本和開源版本基本上是一致的(HTTPs://github.com/xiaomi/Minos)。
介紹到最佳實踐,劉紹輝說,「我們在原生的HBase Client基礎上封裝了一層小米的HBase Client。 這主要是實現了四件事,一是保證執行緒的安全,二是在HBase Client中可以自動添加性能指標,三是跨表、跨集群操作對使用者來說是一致的,四是可以做到動態的更新用戶端配置。 」
對於一些資料比較重要的業務,我們使用了雙主複製,並實現了主備集群的自動切換。 當我們確認需要切換集群的時候只要簡單的修改一個配置,新的讀寫請求就會被切換到備集群上。
▲最佳實踐
另外,在其他方面也有了一些優化,如平滑升級,使用基於move region腳本減少無法接通間; Full GC,每天低峰期觸發Full GC; Compaction,提升寫的性能;四是Shortcircuit Read;安全,Kerberos認證。
在最後談到未來的開發計畫,劉紹輝介紹到,我們希望能做到同步複製,跨行跨表的原子性,全域二級索引,以及做一些Compaction優化, Failover相關的優化,多租戶共用集群與共有雲,HMaster重構。 在與社區共同發展方面,劉紹輝繼續談到,我們也會參與HBase修改回饋回社區,以及會緊跟社區最新進展,積極參與社區方案設計和討論。