学习hbase时,hfile和region关系看的头晕晕,下面是逻辑关系图,同时也也可以看hbase简介 搭建
中第五部分的笔记。
Data Node
Data Node是指HDFS集群中负责存储数据的服务器,与此相对的是Naming Node,参见:
HRegion
Region是表按照RowKey范围划分的不同的部分,相当于DBMS中的分区。同时Region也是表在集群中分布的最小单位,可以被分配到某一个Region Server上。
3
Region中又按照Column Famliy 列族 分为不同的Store,每个Store由MemStore和StoreFile组成。
4
HFile
如上图所示,一个StoreFile对应着一个HFile。而HFile是存储在HDFS之上的。HFile文件格式是基于Google Bigtable中的SSTable,如下图所示
5
整体上看
下面这张图中把DataNode,Region(HRegion)和HFile以及它们之间的关系都表示出来了
说白了, hfile是每个列族的存储数据文件,多个存储列族的hfile在以rowkey为逻辑单位的行关系上逻辑组成了一个个的region,region被分配到多个region server机器上来存储。
最终hfile存储在hdfs文件中。
表行大小决定---->有多少个region
表列族个数决定----->有多少store
一个store------> 对应一个memstore---->数据不断从memstore写入硬盘,造成了慢慢生成多个storefile
一个storefile ----> 对应一个hfile
综上所述总结结构图如下:
看下图,hbase表创建时候默认就是一个region,在行记录不断增加下,达到一定的数值hbase region会自动切分,变成多个region,每一个region里面由多个store组成(store的个数是由hbase 表列族个数决定 在看上图,可以看到左侧的Hregion里就有两个store),
下图测试案例表中,表建立和数据插入都通过hbase shell操作,数据都仅仅是十几条记录,可以看到
hbase表对应的region个数。
每一个Hregion存储一张表的若干行,行里每一个列族对应一个HStore实例,列族个数影响性能,所以对于一个表,
创建Hregion的时候,已经包含了所有列族,剩下就是对行的存储,行越多,Hregion就越多。所以一个Hregion不可能包含其它表的列族,只有本表的列族。
6 客户端读取数据流程图:
读取顺序: 客户端--->行健---> 列族---> 列名 ----> 时间戳 ---> 列值
hbase写入数据流程:
先写到hlog,然后在向memstore写,memstore到达一定阈值后,在向hfile写。
client---> hlog ---> memstore ---> hfile
如下图:
hbase读取一行数据流程:
对应图如下:
hbase删除数据流程:
hbase删除操作: 不会立即删除hfile,会先将数据打一个删除标签,当开启一个大的合并,才会将打标记的数据删除,这个大合并消耗比较大的性能,只有在晚上或者资源使用少时才使用。
相关推荐
赠送jar包:hbase-hadoop2-compat-1.2.12.jar; 赠送原API文档:hbase-hadoop2-compat-1.2.12-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...
hbase-hbck2-1.1.0-SNAPSHOT.jar
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
HBCK是HBase1.x中的命令,到了HBase2.x中,HBCK命令不适用,且它的写功能(-fix)已删除; HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,编译源码。其GitHub地址...
它提供了高度可扩展性、强一致性以及高吞吐量的数据存储能力,尤其适用于大数据分析和实时查询场景。而YCSB-HBase14-Binding则是YCSB与HBase之间的一个接口,使得测试更加简单和直接。 0.17.0版本的YCSB-HBase14-...
赠送jar包:hbase-hadoop2-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop2-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...
- `hbase hbck2 -details`: 这个命令将执行一个全面的检查,显示每个Region的状态、存储文件、 RegionServer上的位置等详细信息。 2. **修复不一致性**: - `hbase hbck2 -fixAssignments`: 如果发现Region未正确...
总的来说,`phoenix-hbase-2.2-5.1.2-bin.tar.gz`是大数据存储和分析领域的重要工具,它结合了HBase的分布式存储能力和Phoenix的SQL查询能力,为大数据处理提供了一种高效、易用的解决方案。无论是对大数据新手还是...
HBase的数据是以文件形式存储在HDFS上的,而Hadoop的MapReduce则用于执行HBase的批处理任务。HBase使用Hadoop的YARN进行资源调度和任务管理。 ### HBase的安装与配置 1. **解压**:首先,我们需要解压`hbase-1.2.0...
hbase-client-2.1.0-cdh6.3.0.jar
Hbase修复工具 示例情景: Q:缺失hbase.version文件 A:加上选项 -fixVersionFile 解决 Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 A:加上选项 -...
赠送jar包:hbase-hadoop2-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop2-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...
赠送jar包:hbase-prefix-tree-1.1.3.jar; 赠送原API文档:hbase-prefix-tree-1.1.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.1.3.pom; ...
赠送jar包:hbase-hadoop2-compat-1.4.3.jar; 赠送原API文档:hbase-hadoop2-compat-1.4.3-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...
hbase hbck2修复工具hbase-operator-tools-1.0.0.1.0.0.0-618-bin.tar.gz,hbase1版本的hbck已经不支持修复命令,hbase2.1版本需要用这个新版的工具
在大数据领域,HBase因其分布式、列式存储的特性,常被用于处理海量半结构化数据。然而,对于习惯于SQL语法的开发者来说,HBase的原生接口可能显得较为复杂。这时,Phoenix应运而生,它为HBase带来了SQL接口,使得...
HBase是Apache Hadoop生态系统中的一个分布式、版本化、列族式存储系统,设计用于处理大规模数据集。这个“hbase-2.4.17-bin”安装包提供了HBase的最新稳定版本2.4.17,适用于大数据处理和分析场景。下面将详细介绍...
在2.4版本中,HBase优化了Region Splitting策略,提升了数据分布的均匀性,同时增强了对高并发读写的支持。 2. **Phoenix SQL接口** Phoenix作为HBase的SQL层,使得开发者无需学习复杂的HBase API,就能利用SQL...
赠送jar包:hbase-hadoop2-compat-1.2.12.jar; 赠送原API文档:hbase-hadoop2-compat-1.2.12-javadoc.jar; 赠送源代码:hbase-hadoop2-compat-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop2-compat-...
赠送jar包:flink-hbase_2.11-1.10.0.jar; 赠送原API文档:flink-hbase_2.11-1.10.0-javadoc.jar; 赠送源代码:flink-hbase_2.11-1.10.0-sources.jar; 赠送Maven依赖信息文件:flink-hbase_2.11-1.10.0.pom; ...