您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > HBase入门与使用
毕玄HBase基本介绍HBase性能HBase使用Hbase@TaobaoYetAnotherNoSQLBigtableimplementationPrimaryContributors:Yahoo!,Facebook,ClouderaTableinHBaseSchema:TableName&ColumnFamilyName;valueisstoredincolumnwithversionasbyte[];ExampleColumnFamilyColumnFamilyColumnLabelColumnQualifierCLCLCL//Schemanamecontact//CLfirstnamelastnamenicknameemailphonebixuanhaolinbluedavy**@gmail186******bluedavyhaolin158******TableinHBase以Region为单位管理:region(startKey,endKey);每个ColumnFamily单独存储:storeFile;当某个ColumnFamily累积的大小某阈值时,自动分裂成两个Region;RegionServerRegion读写操作的场所;Master管理Region的分配;基于zookeeper感应rs的上下线;Region的balance;基于zookeeper来保证HA;HDFSHBase数据、日志的存储场所;强一致性同一行数据的读写只在同一台regionserver上进行;水平伸缩region的自动分裂以及master的balance;只用增加datanode机器即可增加容量;只用增加regionserver机器即可增加读写吞吐量;行事务同一行的列的写入是原子的;ColumnOriented+三维有序SortedMap(RowKey,List(SortedMap(Column,List(Value,Timestamp))))rowKey(ASC)+columnLabel(ASC)+Version(DESC)--value支持范围查询Scanscan=newScan(Bytes.toBytes(0),Bytes.toBytes(20));高性能随机写WAL(WriteAheadLog)和Hadoop无缝集成Hadoop分析后的结果可直接写入HBase;存放在HBase的数据可直接通过Hadoop来进行分析。目前一些不太好用的地方木有二级索引,需要自己写索引表;运维上没有数据库那么成熟。需要知道的一些风险NameNode单点,一旦挂掉,整个hbase集群将挂掉;RegionServer挂掉后需要一定的时间才能切换好;Region由于split会造成短暂的不可用。FacebookMessagesRealtimeanalyticsforBigDataTrendMicroAdobeTwitterYahoo!世界最大的HBase集群,960个node;适用场景简单来说,就是数据库支撑有困难或收益比太低的场景;▪数据量增长快且要存储较长时间,累积的数据量比较大的场景(3T以上,如单条数据为1k,就是30亿条);▪海量数据要做groupby、sum、avg的场景;▪Hadoop分析完毕后的结果要在线二次分析的场景,数据量也要比较大。测试机器5台RegionServer,35台DataNode;12块1TSATA盘(7200RPM),NoRaid;物理内存24G;CPU:E5620(8coreHT16)-Xms16g-Xmx16g-Xmn2g-XX:SurvivorRatio=2-XX:+UseCMSInitiatingOccupancyOnly-XX:CMSInitiatingOccupancyFraction=85服务端参数hbase.replicationfalsehbase.balancer.period1200000hfile.block.cache.size0.4,随机读20%命中场景使用0.01hbase.regionserver.global.memstore.upperLimit0.35hbase.hregion.memstore.block.multiplier8hbase.server.thread.wakefrequency100hbase.regionserver.handler.count300hbase.master.distributed.log.splittingfalsehbase.regionserver.hlog.splitlog.writer.threads3hbase.hregion.max.filesize1073741824hbase.hstore.blockingStoreFiles20hbase.hregion.memstore.flush.size134217728客户端参数hbase.client.retries.number11hbase.client.pause20hbase.ipc.client.tcpnodelaytrueipc.ping.interval3000随机写随机读Schema设计rowKey设计要非常注意,尽可能保证请求的均衡性;Presharding;不要创建过多的ColumnFamily;根据应用场景合理发挥三维有序存储的特性。目前的线上集群7个独立集群,1个公用集群;每天高峰qps为:5w读写,每天增量5t;待上线的3个独立集群;版本均为HBaseTaobao1.0版;自动测试体系运维体系运维体系运维工具▪root、.meta.表的修复工具;▪hbck失败后的修复工具。Balance策略优化以表为粒度Clientputbug修复Compact优化Master恢复时间过长数据备份与恢复避免disabletable失败Region数太多会导致写TPS疯狂下降的patch;自动采用多连接的patch。Server端计算avg,sum等;Group资源隔离
本文标题:HBase入门与使用
链接地址:https://www.777doc.com/doc-6439357 .html