hbase 各个概念,region,storefile

HBase中有两张特殊的Table,-ROOT-和.META.

.META.:记录了用户表的Region信息,它可以有多高region(这的意思是说.META.表可以分 裂成多个region,和用户表一样)

-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region(也就是说它不可分割)

Zookeeper中记录了-Root-表的location

region大小:

更大的Region可以使你集群上的Region的总数量较少。 一般来言,更少的Region可以使你的集群运行更加流畅。(你可以自己随时手工将大Region切割,这样单个热点Region就会被分布在集群的更多节点上)。默认情况下单个Region是256MB.你可以设置为1G。有些人使用更大的,4G甚至更多。可以调整hbase-site.xml中的hbase.hregion.max.filesize属性.

storefile:

hbase.hregion.max.filesize

默认值:256M

说明:在当前ReigonServer上单个Reigon的最大存储空间,单个Region超过该值时,这个Region会被自动split成更小的region。

调优:

小region对split和compaction友好,因为拆分region或compact小region里的storefile速度很快,内存占用低。缺点是split和compaction会很频繁。

特别是数量较多的小region不停地split, compaction,会导致集群响应时间波动很大,region数量太多不仅给管理上带来麻烦,甚至会引发一些Hbase的bug。

一般512以下的都算小region。

大region,则不太适合经常split和compaction,因为做一次compact和split会产生较长时间的停顿,对应用的读写性能冲击非常大。此外,大region意味着较大的storefile,compaction时对内存也是一个挑战。

当然,大region也有其用武之地。如果你的应用场景中,某个时间点的访问量较低,那么在此时做compact和split,既能顺利完成split和compaction,又能保证绝大多数时间平稳的读写性能。

既然split和compaction如此影响性能,有没有办法去掉?

compaction是无法避免的,split倒是可以从自动调整为手动。

只要通过将这个参数值调大到某个很难达到的值,比如100G,就可以间接禁用自动split(RegionServer不会对未到达100G的region做split)。

再配合RegionSplitter这个工具,在需要split时,手动split。

手动split在灵活性和稳定性上比起自动split要高很多,相反,管理成本增加不多,比较推荐online实时系统使用。

内存方面,小region在设置memstore的大小值上比较灵活,大region则过大过小都不行,过大会导致flush时app的IO wait增高,过小则因store file过多影响读性能。

时间: 2024-07-28 13:50:16

hbase 各个概念,region,storefile的相关文章

HBase原理–所有Region切分的细节都在这里了

本文来自网易云社区 作者:范欣欣 Region自动切分是HBase能够拥有良好扩张性的最重要因素之一,也必然是所有分布式系统追求无限扩展性的一副良药.HBase系统中Region自动切分是如何实现的?这里面涉及很多知识点,比如Region切分的触发条件是什么?Region切分的切分点在哪里?如何切分才能最大的保证Region的可用性?如何做好切分过程中的异常处理?切分过程中要不要将数据移动?等等,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的

HBase原理 – 解析Region切分的所有细节

Region自动切分是HBase能够拥有良好扩张性的最重要因素之一,也必然是所有分布式系统追求无限扩展性的一副良药.HBase系统中Region自动切分是如何实现的?这里面涉及很多知识点,比如Region切分的触发条件是什么?Region切分的切分点在哪里?如何切分才能最大的保证Region的可用性?如何做好切分过程中的异常处理?切分过程中要不要将数据移动?等等,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的理解,另一方面如果想实现类似的功能

HBase基本概念

转自:http://www.bcmeng.com/hbase-basic/ Hbase概述 HBase构建在 HDFS 之上,Hbase内部管理的文件全部存储在HDFS 中 Hbase 特性 容量巨大 面向列 稀疏性:空值不占用存储空间 扩展性:热扩展 高可靠性 高性能 Hbase 表的特点 大 无模式 面向列 稀疏 对于空( null )的列,并不占用存储空间 数据多版本 数据类型单一 Hbase中的数据都是字符串,没有类型. hbase数据模型 Row Key 行键,Table的主键,Tab

HBase基本概念与基本使用

1. HBase简介 1.1 什么是HBase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据. HBASE是Google Bigtable的开源实现,但是也有很多不同之处.比如:Google Bigtable使用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文

【转帖】HBase基本概念与基本使用

https://www.cnblogs.com/swordfall/p/8737328.html 分类: HBase undefined 1. HBase简介 1.1 什么是HBase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据. HBASE是Google Bigtable的开源

HBase 优化插入 Region预分配

预分Region 与 不预分Region 的测试: 1 不预分Region:       23~29秒插入100W数据   并且蛋疼的是每次都写入一个 RegionServer 且  只在一个 Region 相当于人为制造的网络风暴. 2 预分Region(3节点分了3个Region)     写入 18~19秒 100W 数据.  55555 每秒.(本机网络请求已满.否则应该线性增长) 下面是代码: (注释部分为不分 Region 的情况) package com.rocky.util; i

hbase优化之region合并和压缩

HBASE操作:(一般先合并region然后再压缩) 一 .Region合并: merge_region   'regionname1','regionname2' ,'true'  --true代表强制合并,一般要加上 一般要是将小文件根据配置的最大上限进行合并,合并后最好清理一下hdfs 二.Region 压缩: 我们以test表为例: 我们先创建一张不含任何压缩格式的test表,并且向其导入10多G的数据$ hadoop fs -du -h /hbase/data/default/   

HBase基本概念和hbase shell常用命令用法

1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 2. HBase的表结构 HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family). Row Key colu

hadoop学习记录(三)HBase基本概念

这一次开始学习HBase数据库. 我用的是VMWare + ubuntu16.04 +Hbase1.1.5 +hadoop2.6.0的组合. 经过亲自安装验证,版本间没有发生冲突,可以进行学习和开发. 具体的安装过程参照了厦门大学数据实验室的安装教程,个人感觉这里面的安装步骤非常详细,非常少适合新人上手,只要懂得基本的java和linux基础即可. 下面是厦大数据实验室的链接:http://dblab.xmu.edu.cn/blog/588-2/#more-588 Hbase即hadoop da