我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HBase入门修行基础篇

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HBase入门修行基础篇

HBase入门修行基础篇

 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

一、Hbase获取查询条件结果的过程

HBase入门修行基础篇

1、两张特殊表:-ROOT- & .META.

    .META.   记录用户表的Region信息,同时,.META.也可以有多个region

    -ROOT-    记录.META.表的Region信息,但是,-ROOT-只有一个region

    Zookeeper  中记录了-ROOT-表的location

2、客户端访问数据的流程:

    Client -> Zookeeper -> -ROOT- -> .META. -> 用户数据表

3、多次网络操作,不过client端有cache缓存

二、Hbase架构

HBase入门修行基础篇

 

组成部件说明

1、Client:

使用HBase RPC机制与HMaster和HRegionServer进行通信

Client与HMaster进行通信进行管理类操作

Client与HRegionServer进行数据读写类操作

2、Zookeeper:

Zookeeper Quorum存储-ROOT-表地址、HMaster地址

HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况

Zookeeper避免HMaster单点问题

3、HMaster:

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行,主要负责Table和Region的管理工作:

3.1 管理用户对表的增删改查操作

3.2 管理HRegionServer的负载均衡,调整Region分布

3.3 Region Split后,负责新Region的分布

3.4 在HRegionServer停机后,负责失效HRegionServer上Region迁移

4、HRegionServer:

HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据。

任何一项新技术并非救命稻草,一抹一擦立马药到病除的百宝箱,并非使用Spring或者NOSQL的产品就神乎其神+五光十色,如果那样基本是扯淡。同类型产品中不管那种技术最终要达到的目的是一样的,通过新的技术手段你往往可能避讳了当前你所需要面对的问题,但过后新的问题又来了。也许回过头来看看还不如在原来的基础上多动动脑筋想想办法做些改良可以得到更高的回报。

传统数据库是以数据块来存储数据,简单来说,你的表字段越多,占用的数据空间就越多,那么查询有可能就要跨数据块,将会导致查询的速度变慢。在大型系统中一张表上百个字段,并且表中的数据上亿条这是完全是有可能的。因此会带来数据库查询的瓶颈。我们都知道一个常识数据库中表记录的多少对查询的性能有非常大的影响,此时你很有可能想到分表、分库的做法来分载数据库运算的压力,那么又会带来新的问题,例如:分布式事务、全局唯一ID的生成、跨数据库查询等,依旧会让你面对棘手的问题。如果打破这种按照行存储的模式,采用一种基于列存储的模式,对于大规模数据场景这样情况有可能发生一些好转。由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。按列存储每个字段的数据聚集存储,可以动态增加,并且列为空就不存储数据,节省存储空间。每个字段的数据按照聚集存储,能大大减少读取的数据量,查询时指哪打哪,来的更直接。无需考虑分库、分表 Hbase将对存储的数据自动切分数据,并支持高并发读写操作,使得海量数据存储自动具有更强的扩展性。Java中的HashMap是Key/Value的结构,你也可以把HBase的数据结构看做是一个Key/Value的体系,话说HBase的区域由表名和行界定的。在HBase区域每一个"列族"都由一个名为HStore的对象管理。每个HStore由一个或多个MapFiles(Hadoop中的一个文件类型)组成。MapFiles的概念类似于Google的SSTable。 在Hbase里面有以下两个主要的概念,Row key 和 Column Family,其次是Cell qualifier和Timestamp tuple,Column family我们通常称之为“列族”,访问控制、磁盘和内存的使用统计都是在列族层面进行的。列族Column family是之前预先定义好的数据模型,每一个Column Family都可以根据“限定符”有多个column。在HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,最新的数据版本排在最前面 。

以上为Hbase的基本需要掌握的知识点。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HBase入门修行基础篇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL数据库基础篇之入门基础命令小结

本文实例讲述了MySQL数据库入门基础命令。分享给大家供大家参考,具体如下: 在日常工作与学习中,无论是开发、运维、还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一。在互联网公司,开源产品线比较多,互联网企业所用的数据
2022-06-01

C++基础入门篇之强制转换讲解

本篇内容主要讲解“C++基础入门篇之强制转换讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++基础入门篇之强制转换讲解”吧!引言假设有基类 A,包含了虚函数 func1,以及有派生类 B,
2023-06-07

HTML基础入门

一、浏览器  浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件  1,浏览器种类  主流浏览器:Chrome,Firefox,Safari,Opera  老师经常说的
2023-01-30

python入门基础

新的开始,新的奋斗!从今天起开始学习python的相关知识!首先python的基本的关键字和基本的分支结构都跟C语言差不多,这里主要介绍python中比较特别的一些基础内容,包括列表,元组和字符串列表创建列表空列表:list = []普通列
2023-01-30

Java 入门基础

Java软件工程师是指运用Java这个开发工具去完成软件产品的软件程序设计、开发、测试、维护升级等工作的人员。::::::::::::::::::::::::::::::::::::::::::::::::::::::::Java 入门基础
2023-06-02

Python:基础入门

#Python 逻辑运算: and,or,not #Python中没有&&,||,!等短路逻辑运算符而是用and,or,not分别替代 print("================================ 逻辑运算符 ======
2023-01-31

python-基础入门

列表shoplist = ['apple', 'mango', 'carrot', 'banana']shoplist[2] = 'aa'del shoplist[0] #删除第一个元素shoplist.insert('4','www')
2023-01-31
2023-09-26

MongoDB基础入门

简介• MongoDB是为快速开发互联网Web应用而设计的数据库系统。• MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分。• MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,MongoDB中的“JSON”我们称为BSO
MongoDB基础入门
2021-02-07

编程热搜

目录