1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/18/2019,#,HBase/HADOOp,小米,小米科技,大纲,概述,Hadoop/HBase的优化,Minos:集群,自动化发布和监控,系统,概述,基础平台开发组,HBase,数据实时读写,在线业务支持,结构化数据存储和分析,Hdfs,离线数据存储,搜集,日,志,Mapreduce/Hive,离线分析和计算,Yarn,集群资源调度和管理,Minos,统一
2、集群管理和监控,HBase,HDFS,MapReduce2.0,Hive,Minos,Yarn,概述,源于社区,业务驱动,回馈社区,超过,30,个改进贡献回开源社区,高可,用性,易维护,安全,性能,优化,特性,扩展,Hadoop/HBase的优化,高可用性,跨集群,Per-,Table/CF,的,Replication,实现,ColumnFamily,Replication_Scope=1,PeerThread,:,读取被标记的,WALEdit,replicate,到,peer,集群,Hadoop/HBase的优化,跨集群,Per-Table,的,Replication,实现,扩展,add_p
3、eer,命令,PeerThread,:,记录住需要,replication,的,Table/CF,https:/issues.apache.org/jira/browse/HBASE-8751,Hadoop/HBase的优化,性能优化:提升,HBase,写的,Throughput,HLog,旧写模型,WriteHandler,WriteHandler,WriteHandler,Local Append Buffer,WriteHandler,:,Write to HDFS,WriteHandler,:,Sync HDFS,WALEdit,WALEdit,WALEdit,WriteHandler
4、之间抢锁,恶性,竞争,Hadoop/HBase的优化,提升,HBase,写的,Throughput,HLog,新写模型,WriteHandler:,t,xid_0,WriteHandler:,txid_1,WriteHandler:,t,xid_n,Local Append Buffer,AsyncWriter,:,Write to HDFS,AsyncFlusher,:,Sync HDFS,WALEdit,WALEdit,WALEdit,AsyncNotifier,:,Notify all WriteHanders,Notify with maxTxid,Notify with maxTx
5、id,Write,和,Sync Hdfs,由单独线程完成,无锁竞争,Notify with txid,Notify with maxTxid,Hadoop/HBase的优化,性能对比,单region server,5台region server,https:/issues.apache.org/jira/browse/HBASE-8755,RowSize,Throughput(,旧,),Latency(,旧,),Throughput(,新,),Latency(,新,),2000,11000,37(ms),23000,17(ms),1000,12000,32(ms),32000,13(ms),5
6、00,13000,30(ms),34000,12(ms),RowSize,Throughput(,旧,),Latency(,旧,),Throughput(,新,),Latency(,新,),2000,20000,30(ms),36000,17(ms),1000,21000,29(ms),54000,11(ms),500,22000,28(ms),65000,9(ms),Hadoop/HBase的优化,特性扩展:,ReverseScan,需求:按照,Rowkey,反向扫描返回结果,Scan,语义,:startKey,stopKey),startKey stopKey,性能比正向,Scan,差,3
7、0%,左右,多做一些,seek,https:/issues.apache.org/jira/browse/HBASE-4811,r,ow,1,:v,11,r,ow,1,:v,12,row,4,:v,41,row,4,:v,42,row,2,:v,21,row,2,:v,22,row,5,:v,51,row,5,:v,52,row,3,:v,31,row,3,:v,32,row,6,:v,61,row,6,:v,62,MemStore,StoreFile_1,StoreFile_n,Max,SeekBefore,反向,seek,到前一行行首,Hadoop/HBase的优化,高可用性,Pipeli
8、ne,重建时可能发生,checksum,重复写,Hdfs,HBase,不停写服务重启,Hdfs,安全,开启,Kerberos,安装认证,、,ACL,控制,Hadoop,HBase/Hdfs/Zookeeper/Yarn,修改,Principal,名字规则,name/fqdnrealm=,name/hadooprealm,Hdfs,增加了不同于,fsowner,的,admin,Krb5,文件单独配置,Hadoop/HBase的优化,优化,HBase,优化,HFile,中,BlockIndexKey,的,大小,取,datablock,的第一个,key,作为,block index,的,key,ab
9、c,bcd,efg,xyz,efg=e,OpenScanner,时对,HFile,进行并行,seek,修正,HBase,删除语义,Timestamp,被业务借用,当前的,Delete,可能删除掉将来的,Put,使用,mvcc,判断,Delete/Put,之间的顺序,局部二级,索引,数据以用户为中心,不会跨用户访问,索引数据与原数据存储在同一张表里,确保同一用户的索引数据、原数据在同一个,region,中,更新时保证原数据行和索引行的事务性,Hadoop/HBase的优化,优化,Hdfs Client pipeline恢复时,尝试reuse以前失败过的datanode,日志接入等业务长时间运行,
10、Hdfs Client,集群负载大,,datanode,经常重启,Hdfs Client,保存了失败的,datanode,列表,N,个节点的,hdfs,集群,如果有,N-2,个,datanode,失败,,client,会失败,加入失败的,datanode,过期时间,Mapreduce/Yarn,引入Cpu,维度的,调度,只用,Memory,调度可能导致,cpu,过于繁忙影响其它进程,引入,Cpu,维度调度,后,可能导致,Mapreduce,调度死锁的问题,历史日志分析,反馈用户参数调优,优化集群利用率,Yarn,追踪,Job,运行过程的内存开销、,GC,时间,、,CPU,利用等,易维护,Hdf
11、s quota,管理,Minos:,集群级别的自动化发布和监控系统,Hadoop,Hadoop/HBase的优化,TODO,HBase,自适应,compact,多租户吞吐量控制,全局二级索引,冷热数据分离,Hdfs,Nameservice+zk,确定,Active namenode,磁盘热插拔,Checksum Inline,Mapreduce,性能优化对比,Yarn,统一资源管理平台,多种离线计算框架,:spark,storm,.,Minos:集群,自动化发布和监控,系统,目标,集群易配置、自动化部署和监控,管理,Hadoop,集群,:,hbase/hdfs/zookeeper/yarn,的
12、统一方案,参考方案,Hadoop,原生脚本,大部分是进程级管理,需要较多手工工作,自动化不足,无监控,Cloudera Manager,功能强大,为,Hadoop Ecosystem,定制,缺乏灵活的包版本管理,方便用官方发布包,不方便开发团队,安装成系统服务,单机无法部署多版本,/,多服务,商业软件,不开源,无法定制,/,改进,Apache Ambari,Hortonworks,主导的开源实现,特点类似,目前还不成熟,大厂通用方案,MS,Autopilot,Google,Borg,Tencent,Torca,Minos:集群,自动化发布和监控,系统,Minos,的集群描述,参考,Borg,的
13、任务描述,Service(cluster),hbase/dptst-example,hdfs/dptst-example,Job,h,base:master,regionserver,hdfs:jornalnode,namenode,zkfc,datanode,Task,regionserver/0:,10.2.201.14:,11100,datanode/0 :,10.2.201.11:,11400,Minos:集群,自动化发布和监控,系统,Minos,架构,安装程序和配置文件包到,package server,操作集群:,Bootstrap/start/stop/.,指标收集和监控,tan
14、k,Supervisord,owl,Minos:集群,自动化发布和监控,系统,安装发布,HBase,服务为例,Install package,设置源代码目录,deploy.cfg,HBase cluster,配置,hbase,-dptst-,example.cfg,Service/Job/Task,发布到,tank,./deploy.py,install hbase,dptst-example,Minos:集群,自动化发布和监控,系统,安装发布,HBase,服务为例,Bootstrap/Start/Show/Stop/Restart/cleanup,./deploy.py hbase dpts
15、t-example,bootstrap,show,stop,start,Minos:集群,自动化发布和监控,系统,安装发布,HBase,服务为例,集群监控,supervised/owl,Minos:集群,自动化发布和监控,系统,安装发布,HBase,服务为例,集群监控,supervised/,owl,Minos:集群,自动化发布和监控,系统,集群监控,supervised/owl,Table,级监控,Minos:集群,自动化发布和监控,系统,集群监控,supervised/owl,RegionServer,级监控,Minos:集群,自动化发布和监控,系统,安装发布,HBase,服务为例,Job,级别的操作,./deploy.py stop hbase dptst-example job=regionserver task=0,Rolling update,./deploy.py rolling_update hbase dptst-example job=regionserver,Minos:集群,自动化发布和监控,系统,Github,开源,:,






