HBase相关的一些基础概念

news/2024/11/8 14:41:01/

 0 小序

        之前面试前司星环的时候,面试官问到HBase那一块的时候直接把我问懵了。上一次使用HBase还是本科的那个图书推荐系统的项目,已经年代久远了,所以今天我特意整理了下HBase相关的知识点。

1 HBase的数据模型   

        Hbase是以Hdfs为数据存储,分布式的,可扩展的NoSQL数据库。Hbase的设计理念依据Google的著名的BigTable论文而展开的。BigTable是一个稀疏的、分布式的、持久的、多为排序映射(map)。该映射由行键、列键和时间戳索引构成,映射到一个未解释的字节数组。

        HBase使用与BigTable类似的数据模型。用户将行存储在带标签的表中。数据行具有可排序的键和任意数量的列。由于该表存储稀疏,且一个表含有动态的列。

2 NameSpace命名空间的概念

        命名空间,类似关系型数据库中database的概念,每个命名空间下含有多张表。HBase有两个自带的命名空间,分别是hbase和default。hbase中存放的是HBase内置的表,default则是存放用户默认使用的命名空间。

3 Table的概念

        类似于关系型数据库表的概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。因为数据存储是稀疏的,所有往HBase中写入的数据的字段是可以动态增加按需指定的。因此,和关系型数据库相比,HBase能轻松应对字段变更的场景。

4 Row的概念

        HBase表中每行数据都由一个RowKey和多个Column组成,数据是按照RowKey的字典序顺序存储的,并且查询数据时只能根据RowKey进行检索,RowKey的设计因此十分重要。

5 Column的概念

        HBase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定。建表时,只需指明列族,而列限定符无需预先定义。

6 TimeStamp时间戳的概念

        用于标识数据的不同版本,每条数据写入时,系统会自动为其加上该字段,值为写入HBase的时间。

7 Cell的概念

        由{RowKey,Column Family, Column Qualifier, TimeStamp }唯一确定的单元,cell中的数据以字节码形式存储。

8 HBase的一些机制

  • HBase把表格的数据存放在Hdfs上,并按照namespace->table->region->store的格式划分文件夹存储。在store下存储HFile,内部为对应的cell。
  • Region由多个Region Server随机管理,尽量均衡。
  • Master主要进程的具体实现类为HMaster,通常部署在namenode上。用于监控Region Server进程状态,同时也是所有元数据变化的接口。内部启动监控执行Region的故障转移和拆分进程。
  • Region Server的具体实现类为HRegionServer,部署于DataNode上。用于负责数据Cell的处理,同时负责执行区域拆分和合并。
  • Master中含有以下三个部分:
  1. LoadBalancer负载均衡器
  2. CatalogJanitor元数据管理器
  3. MasterProcWAL master预写日志处理器
  • HBase一般通过Zookeeper实现master的高可用,记录RegionServer的部署信息,并存储元数据表的位置信息。
  • HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高容错的支持。


http://www.ppmy.cn/news/141649.html

相关文章

VITS开源项目汇总(更新至2023-06-01)

一、摘要 VITS理论基础:https://github.com/jaywalnut310/vits VITS工程实现:GitHub - rhasspy/piper: A fast, local neural text to speech system VITS一键克隆,中英日三语,Plachtaa/VITS-fast-fine-tuning VITS中文模型&a…

雷神 ffmpeg_雷神之锤II.NET!

雷神 ffmpeg Scott Stanfield and his motley crew have ported Quake II (125k lines of C) to Managed C(.NET)! Madness! But the good kind of madness...check it out. 斯科特斯坦菲尔德( Scott Stanfield)和他的团队成员已将Quake II(C语言的125k行)移植到托管C (。NET…

雷神之锤3源代码注释(1)

2016.1.10 这是我最后一个寒假了,这个寒假来注释了雷神之锤3。同时希望做出自己的mod。 可编译的雷神之锤3源代码免费下载链接:雷神之锤3源代码下载 时间晚了些,先睡了,后续更新。 by 朽木钢丸

linux运行雷神之锤,Ubuntu下多人射击类游戏 Quake Live 雷神之锤

今天本人开始Ubuntu 游戏系列专题咯,第一个推荐游戏是Quake Live 雷神之锤。Quake Live 雷神之锤是一款可以运行于Windows Linux及mac系统的多人射击游戏,游戏是借助浏览器插件来运行的,可以实现多人联网游戏。本人今天也体验了一下&#xff…

B雷神之锤

新增分组与属性关联 查询分组未关联的属性 删除关联属性 销售属性维护 规格修改 规格参数列表 规格参数新增与VO 品牌分类关联与级联更新 显示完整的分类信息 获取分类属性分组 分组校验 字符串都是用blank 统一异常处理 JSR303校验 递归树形结构数据获取

雷神之锤源码linux,雷神之锤3 的源代码查看

Quake-III Arena (雷神之锤3)是90年代的经典游戏之一。该系列的游戏不但画面和内容不错,而且即使计算机配置低,也能极其流畅地运行。这要归功于它3D引擎的开发者约翰-卡马克(John Carmack)。事实上早在90年代初DOS时代,只要能在PC上搞个小动画…

雷神之锤冠军游戏角色高清Mac动态壁纸

雷神之锤冠军游戏角色高清Mac动态壁纸,雷神之锤冠军快节奏的竞技场射击游戏,游戏讲究纯粹的速度和和技巧,雷神之锤冠军游戏角色Mac壁纸适用于10.14及更高系统的Mac动态壁纸,尺寸为3840  2160 来自 “未来软件园” ,…

奎特尔星球|雷神之锤(下)

紧接上篇《奎特尔星球|雷神之锤(上)》,我给大家介绍了雷神之锤—uikiller的基本用法,有人说长按功能可以取名为蓄力攻击、重击,我觉得还真是可以的,但就是感觉招数名字不够大气。在这里还要给大家道个歉,上篇中我说了这…