HBase在小米中的应用实践

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

HBASEATXIAOMI小米科技基础平台开发组大纲HBase原理简介HBase在小米的现状HBase在小米业务的应用小米对于HBase的重要改进结构化数据存储服务将来的工作HBase原理简介数据模型Column,Rowkey,TableHBase原理简介HBase架构Region&RegionServer(RowKey,CF:Qualifier,Timestamp)=ValueHBase原理简介HBase架构HBase在小米的现状集群与业务(截止2014.03.24)15个HBase集群:9个在线集群、2个离线处理集群、4个测试集群服务十多个不同业务百台机器:每个数据节点24TB开发与贡献(截止2014.03.24)源于社区、回馈社区217个改进,125个被采用HBase在小米业务的应用服务十多个不同业务米聊消息全存储小米云服务(MiCloud)短信、通话记录小米推送服务选用HBase的原因水平扩展能力:MiCloud大数据场景高可用性:7*24小时服务灵活的Schema:业务不断发展也会有修改Schema需求多版本特性:追踪米聊消息状态写性能优化:小米Push推送消息时高吞吐量写强一致性HBase在小米业务的应用配置控制节点,数据节点HBase在小米业务的应用Minos集群部署和监控系统bootstrap/install/start/stop/restart/rolling_update…集群监控和展示小米对于HBase的重要改进写吞吐优化HLog旧写模型WriteHandlerWriteHandlerWriteHandler……LocalAppendBufferWriteHandler:WritetoHDFSWriteHandler:SyncHDFSWALEditWALEditWALEditWriteHandler之间抢锁恶性竞争……小米对于HBase的重要改进写吞吐优化HLog新写模型WriteHandler:txid_0WriteHandler:txid_1WriteHandler:txid_n……LocalAppendBufferAsyncWriter:WritetoHDFSAsyncFlusher:SyncHDFSWALEditWALEditWALEditAsyncNotifier:NotifyallWriteHanders……NotifywithmaxTxidNotifywithmaxTxidWrite和SyncHdfs由单独线程完成,无锁竞争NotifywithtxidNotifywithmaxTxid小米对于HBase的重要改进写吞吐优化0.98:trunk:优化前优化后反向扫描性能:比正向scan差30%,与levelDB下降相当row1:v11row1:v12row4:v41row4:v42……row2:v21row2:v22row5:v51row5:v52row3:v31row3:v32row6:v61row6:v62………………MemStoreStoreFile_1StoreFile_nMax反向seek到当前行首反向seek到上一行行首可控粒度的跨机房备份改进:per-peer可以配置从master集群replicate哪些数据(per-table/per-CF)使用:set_peer_tableCFs:cf1T1,T3,Master:T1/T2/T3/T4Peer2Region内跨行原子性现状:同一次batch操作的同region跨行写没有原子性保证改进:同一次batch操作的同region的所有写在获得所有行的锁后一次落地确保按照rowkey顺序抢锁、避免死锁局部二级索引前缀分割策略:KeyDelimiterPrefixRegionSplitPolicy局部二级索引必须使用KeyDelimiterPrefixRegionSplitPolicy结构化数据存储服务现状目前HBase的使用方式是使用原生接口直接访问独占的HBase集群运维成本、资源浪费开发难度、学习成本解决方案DAAS–DatabaseasaService基于HBase,为(移动)应用开发者提供便捷,安全,共享,可扩展的分布式NoSQL托管存储服务结构化数据存储服务目标服务器端通用存储服务提供通用数据存储服务。类似AmazonDynamoDB服务App云端存储:存取用户私有数据比如记事本应用,游戏进度同步,App的设置同步备份等。类似于iCloud提供的key-value存储服务App云端存储:存取应用公共数据比如天气应用的天气数据结构化数据存储服务目标App用户私有数据App公共数据结构化数据存储服务AppServerAppTerminal……公有云存储服务小米开放平台结构化数据存储服务主要功能共享的分布式数据库多租户集群资源共享可配置的存储空间和QPS配额控制安全访问控制DDL/DML操作支持丰富数据类型局部二级索引支持便捷的访问模式RESTfulAPI与SDK支持支持服务器端通用存储服务(DynamoDB模式)支持移动客户端直接访问数据(iCloudkv-store模式)认证登录管理功能便捷的界面管理MapReduce支持结构化数据存储服务快速使用开发者到选择“结构化存储服务”注册帐号文档:=1958开发者创建app,获得appid和appsecretappsecret需要保密,不能发布到客户端appid假定会分发到客户端开发者创建属于他们app的表结构化数据存储服务快速使用应用:云通讯录用户查询公共号码用户安全的访问自己的通讯录结构化数据存储服务快速开始创建表结构化数据存储服务快速开始创建表结构化数据存储服务快速开始创建表结构化数据存储服务快速开始创建表结构化数据存储服务快速开始表操作结构化数据存储服务安全访问控制匿名访问:只能读取允许匿名方法的公共表支持小米账号登陆第三方OAuth登陆已支持小米、新浪、腾讯、人人结构化数据存储服务系统架构结构化数据存储服务数据模型结构化数据存储服务数据模型主键rowkey存储格式tablename:recordgroupkey:pkindexkeyparts属性值存储记录所有属性值存储在名为C的Family下Column名字为属性名,cell的value存储属性值结构化数据存储服务DDL操作CreateTableDescribeTableShowTableAlterTableAlterAppInfo/GetAppInfoDML操作Set:Put/Increment/checkAndPut/checkAndDeleteGetDeleteScanBatchScanAppUser结构化数据存储服务数据类型整数类型INT8,INT16,INT32,INT64浮点数类型FLOAT,DOUBLE布尔类型BOOLEAN字符串类型STRING二进制BINARY结构化数据存储服务条件查询操作符EQ,NE,GT,GE,LT,LE逻辑运算AND,OR结构化数据存储服务局部二级索引原理:同Region跨行事物的原子性二级索引rowkey存储格式tablename:recordgroupkey:idxname:indexkeyparts:pkindexkeyparts投影属性(projectedattributes)的存储数据放到独立的列簇I内结构化数据存储服务局部二级索引通过二级索引查找跟通过主键查找具有统一的接口(ScanAPI)通过索引查询过程如下:根据指定的索引属性值找到对应的索引项,从索引项中读取主键指针根据主键进行读取,如果存在则返回记录,如果不存在,说明记录不存在且索引失效,清理索引项结构化数据存储服务表定义结构化数据存储服务应用记事本结构化数据存储服务应用现状小米内部已经开始使用每天过亿条数据量将来的工作HBase跨行跨表原子性(实现原理同GooglePercolator)全局二级索引Compaction优化.HBASE-9528Failover优化.HBASE-9873公有云服务隔离与SLA负载均衡全局事务与全局索引监控与统计多语言SDKQ/A微博:jianweicui,邮箱:cuijianwei@xiaomi.com博客:

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功