HBase基本介绍垂直分表的意思. • 读缓存: BlockCache • 写缓存: Memstore • 写操作⽇日志: WAL • 数据⽂文件: HFile 系统组成 RegionServer 深⼊入RegionServer内部. 有两个Cache和两种⽂文件 • 先写WAL做故障恢复⽤用 • 写到Memstore中 • ⾜足够⼤大时flush到HFile • Compaction Compaction (Minor/Major) 系统组成 RegionServer写操作 ⼀一个Region多个CF就多个Memstore 在Memstore⾥里里已经处理理好格式, 排序 有⼀一个Memstore满了了, 就整个Region flush 这⾥里里每隔⼀一会就flush, 会⽣生成很多⼩小的HFile, HBase会执⾏行行两种compaction, minor com只是将⼩小的何为⼀一些⼤大的 合成⼀一个⽂文件 (all the HFiles in a region to one HFile per column family). 归并排序. • 先找BlockCache • 再找Memstore, 写⼊入还没flush • 根据index去HFile⾥里里找 • HBase如何在hdfs这种append- only⽂文件系统上实现, 修改/删除 操作的 系统组成 RegionServer读操作0 码力 | 33 页 | 4.86 MB | 1 年前3
HBase最佳实践及优化为上限,具体视服务器能力(CPU内核) 及访问压力(每个Region的服务量)而定 • 过多Region的症状: – CPU线程切换频繁 – 内存使用过大,造成GC频繁,服务Timeout – 每个Region的Memstore太小,磁盘flush频繁, HFile文件过多小文件 Postgres Conference China 2016 中国用户大会 Major Compaction • HBase根据时间来计划执行Major blockingStoreFiles,建议值30 – 更大的hbase.hregion.memstore.flush.size能减少 Compaction的次数 • 现在缺省128MB,一般不用修改 Postgres Conference China 2016 中国用户大会 HBase的GC特点 • 由单个RPC带来的操作类垃圾对象是短期的 • Memstore是相对长期驻留的,按2MB为单位分配 • Blockcache是长期驻留的,按64KB为单位分配 • 没有可用的handler响应 – 考虑增加handler数目或硬件资源 • 更常见的情况是95%-99%的写入都很快,但有些 写入非常慢,甚至慢上万倍,一般问题在服务器端: – 写入Memstore慢 • HLog写入超时——考虑HDFS及硬盘异常 • GC——考虑优化内存使用(GC参数及算法调优有限) – Flush慢 • HFile写入超时——考虑HDFS及硬盘异常 • Com0 码力 | 45 页 | 4.33 MB | 1 年前3
共 2 条
- 1













