千家信息网

大数据之HBase基础

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,HBase简介1.1. 什么是HBaseHBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase的目标是存
千家信息网最后更新 2025年02月02日大数据之HBase基础
  1. HBase简介
    1.1. 什么是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作为对应。
想了解大数据的学习路线,想学习大数据知识以及需要免费的学习资料可以加群:784789432.欢迎你的加入。每天下午三点开直播分享基础知识,晚上20:00都会开直播给大家分享大数据项目实战。

1.2. 与传统数据库的对比
1、传统数据库遇到的问题:

1)数据量很大的时候无法存储

2)没有很好的备份机制

3)数据达到一定数量开始缓慢,很大的话基本无法支撑

2、HBase优势:

1)线性扩展,随着数据量增多可以通过节点扩展进行支撑

2)数据存储在hdfs上,备份机制健全

3)通过zookeeper协调查找数据,访问速度块。

1.3. HBase集群中的角色
1、一个或者多个主节点,Hmaster

2、多个从节点,HregionServer

  1. hbase数据模型
    2.1. hbase数据模型

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

1.通过单个row key访问

2.通过row key的range(正则)

3.全表扫描

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

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

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

关键字:无类型、字节码

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

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

  1. hbase命令
    3.1. 命令的进退
    1、hbase提供了一个shell的终端给用户交互

#$HBASE_HOME/bin/hbase shell

2、如果退出执行quit命令

#$HBASE_HOME/bin/hbase shell

……

quit

3.2. 命令
名称

命令表达式

创建表

create '表名', '列族名1','列族名2','列族名N'

查看所有表

list

描述表

describe '表名'

判断表存在

exists '表名'

判断是否禁用启用表

is_enabled '表名'
is_disabled '表名'

添加记录

put '表名', 'rowKey', '列族 : 列' , '值'

查看记录rowkey下的所有数据

get '表名' , 'rowKey'

查看表中的记录总数

count '表名'

获取某个列族

get '表名','rowkey','列族'

获取某个列族的某个列

get '表名','rowkey','列族:列'

删除记录

delete '表名' ,'行名' , '列族:列'

删除整行

deleteall '表名','rowkey'

删除一张表

先要屏蔽该表,才能对该表进行删除
第一步 disable '表名' ,第二步 drop '表名'

清空表

truncate '表名'

查看所有记录

scan "表名"

查看某个表某个列中所有数据

scan "表名" , {COLUMNS=>'列族名:列名'}

更新记录

就是重写一遍,进行覆盖,hbase没有修改,都是追加

  1. hbase依赖zookeeper
    1、 保存Hmaster的地址和backup-master地址

hmaster:

a) 管理HregionServer

b) 做增删改查表的节点

c) 管理HregionServer中的表分配

2、 保存表-ROOT-的地址

hbase默认的根表,检索表。

3、 HRegionServer列表

表的增删改查数据。

和hdfs交互,存取数据。

  1. hbase原理
    5.1. 体系图

5.1.1. 写流程
1、 client向hregionserver发送写请求。

2、 hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。

3、 hregionserver将数据写到内存(memstore)

4、 反馈client写成功。

5.1.2. 数据flush过程
1、 当memstore数据达到阈值(默认是64M),将数据刷到硬盘,将内存中的数据删除,同时删除Hlog中的历史数据。

2、 并将数据存储到hdfs中。

3、 在hlog中做标记点。

5.1.3. 数据合并过程
1、 当数据块达到4块,hmaster将数据块加载到本地,进行合并

2、 当合并的数据超过256M,进行拆分,将拆分后的region分配给不同的hregionserver管理

3、 当hregionser宕机后,将hregionserver上的hlog拆分,然后分配给不同的hregionserver加载,修改.META.

4、 注意:hlog会同步到hdfs

5.1.4. hbase的读流程
1、 通过zookeeper和-ROOT- .META.表定位hregionserver。

2、 数据从内存和硬盘合并后返回给client

3、 数据块会缓存

5.1.5. hmaster的职责
1、管理用户对Table的增、删、改、查操作;

2、记录region在哪台Hregion server上

3、在Region Split后,负责新Region的分配;

4、新机器加入时,管理HRegion Server的负载均衡,调整Region分布

5、在HRegion Server宕机后,负责失效HRegion Server 上的Regions迁移。

5.1.6. hregionserver的职责
HRegion Server主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBASE中最核心的模块。

HRegion Server管理了很多table的分区,也就是region。

5.1.7. client职责
Client

HBASE Client使用HBASE的RPC机制与HMaster和RegionServer进行通信

管理类操作:Client与HMaster进行RPC;

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

数据 存储 时间 管理 版本 命令 系统 不同 用户 节点 分配 处理 内存 地址 多个 字节 数据库 文件 机制 类型 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全与国家主权的关系 虹口区会计软件开发厂家价格 关系数据库简单点的理解 静安区推广软件开发费用是多少 沉迷网络安全教育主题班会ppt 网络安全 青少年 讲话 山西硕成软件开发有限公司地址 网络安全普法宣传教育 go 数据库框架 非结构化数据库和结构化数据库 神马网络技术 如何自建一个mc服务器 手机激光打标靠谱软件开发公司 网络安全保护费用 网络安全知识推送 全国普法关于网络安全 数据库科目表创建 恐怖黎明无法进入好友服务器 数据库中包含哪两种数据类型 为什么软件无法打开数据库 网络安全法提供非法软件 一个软件开发商年收入 河南net软件开发服务费 数据库还原注册表 数据库中的标志规范是什么意思 手机上客户端和服务器怎么工作 徐汇区网络技术近期价格 软件开发大专生好就业吗 服务器内存条在台式机上可用吗 三级网络技术的教材
0