HBase Practice At XiaoMia bad performance or even not working when the number of region is very large, e.g 1000+ per regionserver Create WriterAndPath Create WriterAndPath Create WriterAndPath Create WriterAndPath appendBuffer of region * number of replica * number of regionserver Streams each datanode need to handle = Number of streams / number of datanodes Number of regionserver usually equals to number of datanodes. ❏ bounded = true ❏ Configurations: hbase.regionserver.hlog.splitlog.buffersize (maxHeapUsage): set it equals or larger than the size limit of HLog. hbase.regionserver.hlog.splitlog.writer.threads : Not having0 码力 | 56 页 | 350.38 KB | 1 年前3
HBase Practice At XiaomiAmplification When Using Blocking Client RegionServer RegionServer RegionServer Handler-1 Handler-2 Handler-3 Services RegionServer RegionServer RegionServer Handler-1 Handler-1 Handler-1 Services 256 MB ○ hbase.bucketcache.ioengine = offheap Test Environment RegionServer RegionServer RegionServer RegionServer RegionServer HMaster ● Java: JDK 1.8.0_111 ● Heap: 30G Heap + 30G OFF-Heap0 码力 | 45 页 | 1.32 MB | 1 年前3
HBase基本介绍架构组成. 知道了了存的数据样⼦子, 我们接下来看点实际的 • HMaster • RegionServer • Zookeeper • NameNode/DataNode 系统组成 如图有这么⼏几个组成部分, 前两个是HBase的 Master是负责管理理的, RegionServer是实际⼲干活的 zookeeper作为协调信息存储的地⽅方, ⽐比如节点健康状态 然后HBase的数据都要存放在hdfs上, 就要有node. 如图可以看出RegionServer和Datanode尽量量在同⼀一台机器器上. • ⽔水平 按rowkey分开 region • Pre-split: 0-5 6-10 • Auto-split: size • 垂直 按CF分开 系统组成 Region ⽔水平按rowkey分. 这个分两步, 第⼀一个是在建表的时候指定分的⽅方式 WAL • 数据⽂文件: HFile 系统组成 RegionServer 深⼊入RegionServer内部. 有两个Cache和两种⽂文件 • 先写WAL做故障恢复⽤用 • 写到Memstore中 • ⾜足够⼤大时flush到HFile • Compaction (Minor/Major) 系统组成 RegionServer写操作 ⼀一个Region多个CF就多个Memstore0 码力 | 33 页 | 4.86 MB | 1 年前3
HBase Read PathSide HBase Client ClientScanner ClientScanner cache(queue) scanner.next() RegionServer-0 RegionServer-1 RegionServer-2 scanResultCache ScannerCallableWithReplicas 1. RPC Request 2. RPC Response Result-1 Cell-4 Result-3 Cell-5 Result-4 Cell-7 Result-5 Cell-6 Cell-8 Cell-2 Result-2 Cell-3 RegionServer Row Data RPC Response Recieved from RS Results get from scanner.next() Cell-9 Size of cell-1 Result-1 Cell-4 Result-3 Cell-5 Result-4 Cell-7 Result-5 Cell-6 Cell-8 Cell-2 Result-2 Cell-3 RegionServer Row Data RPC Response Recieved from RS Results get from scanner.next() Cell-1 Cell-2 Result-10 码力 | 38 页 | 970.76 KB | 1 年前3
HBase最佳实践及优化核心交换机 核心交换机 负载均衡器 负载均衡器 防火墙 防火墙 DCN网络接入 路由器 核心交换机 核心交换机 防火墙 防火墙 接入路由器 查询接口服务器 DataNode and RegionServer 核心交换机 核心交换机 FTP传输及入库 NameNode节点 Zookeeper X 省 客服系统 GGSN SGSN Gn口 产创平台 采集系统 Postgres Conference 写? – 读需要合并HFile,因此文件越少越好 – 写需要减少Compaction操作,因此文件越多越好 – 优化读或者写之一,而不是全部 • 顺序 vs. 随机? • 参考值——每个RegionServer吞吐率>20MB/s – 读吞吐率>3000ops/s, 写吞吐率>10000ops/s • 尽量在HBase表结构设计时就考虑解决性能问题, 而不是通过设置参数来调整HBase性能! some CPU cycles in between GC epochs Postgres Conference China 2016 中国用户大会 RegionServer硬件建议 • 服务器硬盘空间不大于6TB*RegionServer • 足够的内存堆大小(约等于硬盘空间/200) • HBase对于CPU要求高,越多core越好 • 磁盘与网络的速度匹配 – 比如如果是24块硬盘,吞吐率约20 码力 | 45 页 | 4.33 MB | 1 年前3
HBASE-21879 Read HFile ’s Block into ByteBuffer directly.pre-allocate 2MB *2 for each RPC handler ( The handler count is determined by the config: hbase.regionserver.handler.count, it has the default value 30) . That’s to say, if your hbase.server.allocator request), then it will be better to increase the hbase.server.allocator.max.buffer.count. The RegionServer web UI also has the statistic about ByteBuffAllocator: If the following condition meet0 码力 | 18 页 | 1.14 MB | 1 年前3
共 6 条
- 1













