Hbase原理系列--成员

2023-06-29 15:22:51 浏览数 (2)

安装url:hbase集群部署

一.简介

HBASE是一个高可靠性、高性能、面向列、可伸缩、稀疏的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。

HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBASE利用Zookeeper作为对应。

二.与传统数据库的对比

1、传统数据库遇到的问题:

  • 数据量很大的时候无法存储
  • 没有很好的备份机制(binlog)
  • 数据达到一定数量开始缓慢,很大的话基本无法支撑

 2、HBASE优势:

  • 线性扩展,随着数据量增多可以通过节点扩展进行支撑
  • 数据存储在hdfs上,备份机制健全(Hfile)
  • 通过zookeeper协调查找数据,访问速度块。

三.角色

1.一个或者多个主节点,Hmaster

2.多个从节点,HregionServer

四.数据模型

4.1.Row Key

与nosql数据库们一样,row key是用来检索记录的主键。访问HBASE table中的行,只有三种方式:

  • 通过单个row key访问
  • 通过row key的range(正则)
  • 全表扫描

Row key行键 (Row key)可以是任意字符串(最大长度 是 64KB,实际应用中长度一般为 10-100bytes),在HBASE内部,row key保存为字节数组。存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)

4.2.Columns Family

列簇 :HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部 分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。

4.3.Cell

由{row key, columnFamily, version} 唯一确定的单元。cell中 的数据是没有类型的,全部是字节码形式存贮。

关键字:无类型、字节码

4.4.Time Stamp

HBASE 中通过rowkey和columns确定的为一个存贮单元称为cell。每个 cell都保存 着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写入时自动 )赋值,此时时间戳是精确到毫秒 的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版 本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供 了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段 时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

4.5.Region

Region的概念和关系型数据库的分区或者分片差不多。

Hbase会将一个大表的数据基于Rowkey的不同范围分配到不通的Region中,每个Region负责一定范围的数据访问和存储。这样即使是一张巨大的表,由于被切割到不通的region,访问起来的时延也很低。

四.Zookeeper

1.保存Hmaster的地址和backup-master地址

hmaster:

管理HregionServer

做增删改查表的节点

管理HregionServer中的表分配

2.保存表.META.的地址

hbase默认的根表,检索表。

3.HRegionServer列表

表的增删改查数据。

和hdfs交互,存取数据。

4.通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务

五.Hmaster

为RegionServer分配Region

维护整个集群的负载均衡

维护集群的元数据信息

发现失效的Region,并将失效的Region分配到正常的RegionServer上

当RegionSever失效的时候,协调对应Hlog的拆分

六. HregionServer

管理master为其分配的Region

处理来自客户端的读写请求

负责和底层HDFS的交互,存储数据到HDFS

负责Region变大以后的拆分

负责Storefile的合并工作

七.HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为Hbase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:

提供元数据和表数据的底层分布式存储服务

数据多副本,保证的高可靠和高可用性

八.使用场景

Hbase是一个通过廉价PC机器集群来存储海量数据的分布式数据库解决方案。它比较适合的场景概括如下:

是巨量大(百T、PB级别)

查询简单(基于rowkey或者rowkey范围查询)

不涉及到复杂的关联

有几个典型的场景特别适合使用Hbase来存储:

海量订单流水数据(长久保存)

交易记录

数据库历史数据

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

0 人点赞