Hadoop学习之HBase基础知识、操作和原理

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: Hadoop学习之HBase基础知识、操作和原理 1. HBase 简介 HBase(hadoop DataBase)是一个高可靠,高性能面向列,可伸缩的分布式存储系统,利用HBase技术可在廉价PC server 上搭建大规模结构化存储集群。HBase 利用HDFS作为其文件系统,利用Hadoop MapReduce来处理HBase中的海量数据 2. HBase Shell

Hadoop学习之HBase基础知识、操作和原理

1. HBase 简介

HBase(hadoop DataBase)是一个高可靠,高性能面向列,可伸缩的分布式存储系统,利用HBase技术可在廉价PC server 上搭建大规模结构化存储集群。HBase 利用HDFS作为其文件系统,利用Hadoop MapReduce来处理HBase中的海量数据

2. HBase Shell 操作

HBase 可执行参数


hbase shell

 


a)     创建表的帮助语法(create)



b)     获取行或单元的值(get)


c)      列出hbase 上的所有表(list)


d)     删除表(drop)

删除表之前必须先让表失效:disable ‘t1’


e)     向hbase指定的hbase表单元添加值(put)


f)       获取指定表的相关信息(scan)


g)      使表失效(disable)


h)     使表生效(enable)


实例:








 

3. HBase 配置

<configuration>
<property>
 <name>hbase.rootdir</name>
 <value>hdfs://hadoop1:9000/hbase</value>
</property>
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
</property>
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>hadoop1,hadoop2,hadoop3</value>
</property>
<property>
 <name>hbase.master</name>
 <value>hdfs://hadoop1:60000</value>
</property>
 
<property>
 <name>hbase.client.write.buffer</name>
 <value>2097152</value>
 <description>设置缓冲区大小为2M</description>
</property>
<property>
  <name>hbase.master.meta.thread.rescanfrequency</name>
 <value>60000</value>
 <description>hbase扫描ROOT和META表的时间间隔</description>
</property>
<property>
 <name>hbase.regionserver.handler.count</name>
 <value>10</value>
 <description>RegionServer上等待处理请求的实例数目,默认10</description>
</property>
<property>
 <name>hbase.hregion.max.filesize</name>
  <value>268435456</value>
 <description>HRegion上stove文件最大值,默认为256M,以字节为单位</description>
</property>
 
<property>
  <name>hfile.block.cache.size</name>
  <value>0.2</value>
 <description>HFile/StoreFile缓存所在java虚拟机堆大小的百分比,默认0.2,占比20%,0为禁用</description>
</property>
 
<property>
  <name>hbase.regionserver.global.memstore.upperLimit</name>
  <value>0.4</value>
 <description>RegionServer上所有的memstore所在java虚拟机的比例上限,默认为0.4,40%,当memstore所占空间超过此值,更新操作被阻塞,所有内容强制写出</description>
</property>
<property>
  <name>hbase.hregion.memstore.flush.size</name>
  <value>67108864</value>
 <description>memstore缓存写入到磁盘上的值内容大小限度值</description>
</property>
 
</configuration>


4. HBase 的体系结构

主从服务器:HRegion服务器群和HMaster服务器构成。通过zookeeper协调HMaster不存储任何数据,hbase逻辑上的表可以分为多个HRegion,存储到HRegion服务器群中,HMaster中存储的是从数据到HRegion的映射

HRegion服务器:HLOG部分和HRegion部分。HLOG是用来存储数据日志,先写日志方式;HRegion部分由很多HRegion组成,存储的是实际数据。

每个HRegion由很多Store组成,每个store存储的是一个列族下的数据。在每个hstore中包含一块memstore和多个storefile(HFile).

HFile:负责实际的数据存储,HBase的最小存储单元。

5. HBase数据模型(NoSql)

a)     表(table),是存储管理数据的

b)     行键(row key),类似于Mysql中的主键

行键是HBase表天然自带的

c)      列族(column family),列的集合

HBase中列族是需要在定义表时指定的,列是在插入数据时自动增加的

HBase表中的数据,每个列族淡出一个文件

d)     时间戳(timestamp),列(也称作标签,修饰符)的一个属性

行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。

如果不指定时间戳或者版本,默认取最新的

e)      存储的数据都是字节数组。

f)       表中的数据是按照行键的顺序物理存储的。

字符串、证书、二进制串甚至串行化的  都可以作为行键

表按照行键的“逐字节排序”顺序对行进行有序化处理

表内数据非常”稀疏”,不同的行的列数完全可以大不相同

可以只对一行上”锁”

对行的写操作始终是”原子的”

6. Hbase 的物理模型

a)     HBase是适合海量数据(20PB)的秒级简单查询的数据库

b)     Table在按照行键,分割为多个HRegion,一个region由(startKey,endKey)表示,每个HRegion分散在不同的RegionServer中

c)      HBase对表的操作转化为对多台Regionserver的并行查询

7. HBase的体系结构

a)     HBase是主从结构,HMaster、HregionServer允许有多个HMaster存在,但同一时间只有一个HMaster有效

b)     HBase集群是需要Zookeeper的:

                      i.   保证任何时候,集群中只有一个running master
                      ii.  存贮所有Region的寻址路口
                      iii. 实时监控RegionServer的状态,将RegionServer的上线和下线信息,实时通知给Master
                      iv. 存储HBase的schema,包括有哪些table,每个table  有哪些列族

Master可以启动多个HMaster,通过zookeeper的Master Election机制保证总有一个Master运行。

             v.  为Region server分配region

             vi. 负责region server的负载均衡

             vii.发现失效的region server 并小心分配其上的region

c)      RegionServer

                      i. 维护Master分配给它的region,处理对这些region的IO请求
                      ii.负责切分在运行过程中变得过大的region

d)     HBase有两张特殊的表,-ROOT-和.META.

                      i. .META.(两边都有点"."):记录了用户表的Region的信息,.META.可以有多个region
                      ii. -ROOT-:记录了.META.表的Region,-ROOT-只有一个region

8. HBase 与RDBMS

                    i.  数据类型:HBase只字符串,所有类型交用户处理。RDBMS丰富的类型。
                    ii. 数据操作:HBase只有简单的插入、查询、删除、清空操作,表与表之间分离 ,没有复杂关系,不能实现表间关联。RDBMS含有各种函数,连接操作。
                    iii.存储模式:HBase基于列存储,每列几个文件保存,不同列族文件分离。RDBMS基于表结构和行模式
                    iv.数据维护:HBase的更新操作,实际是数据的新版本的插入操作。

                    v. 可伸缩性:HBase轻松增减硬件数量,容错性高;RDBMS需要加上中间层实现。

9. 模式设计的原则

i. 列族的数量及列族的势

建议列族的数量越少越好,hbase对两个及以上的列族处理的并不好,hbase的flushing和压缩是基于HRegion的。

同一个表中不同列族所存储的记录数量的差别,即列族的势。当两个列族数量差别过大时,会将包含记录较少的列族的数量分散到多个region上,而region可能存储在不同的regionserver上,这样进行查询或scan操作时,会对性能有影响。

ii. 行键的设计

避免使用时序或单调(递增、递减)行键,hbase根据行键确定存储位置,即region的位置,如果采用时序或单调,连续到来的数据会被存储到一个region中,而其他region是空闲的,这是分布式系统不希望看到的。

iii.  最小化行键和列族的大小

值ß 行键、列、时间戳。

Hbase的索引是为了加快随机访问的速度:行键+列族:列+时间戳+值

iv. 版本的数量

默认情况下,每个数据存储3个版本,可通过HColumnDescriptor设置

 

相关文章
|
6月前
|
分布式计算 Ubuntu Hadoop
Ubuntu22.04下搭建Hadoop3.3.6+Hbase2.5.6+Phoenix5.1.3开发环境的指南
呈上,这些步骤如诗如画,但有效且动人。仿佛一个画家在画布上描绘出一幅完美的画面,这就是你的开发环境。接下来,尽情去创造吧,祝编程愉快!
440 19
|
存储 大数据 关系型数据库
HBase系列学习:基础知识
HBase系列学习:基础知识
369 1
HBase系列学习:基础知识
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
313 4
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
434 1
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
171 3
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
204 3
|
SQL 分布式计算 Hadoop
Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件
Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件
488 2
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
184 2
|
8月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
395 79
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
493 6

相关实验场景

更多
下一篇
oss云网关配置