HBase数据库原理入门操作

HBase简介

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统
HBase底层利用Hadoop HDFS作为其文件存储系统,用Hadoop的 MapReduce来处理HBase中的大量数据

HBase框架结构

在这里插入图片描述
Client
客户端进行HBase shell、java API、RestAPI操作
zookeeper
zookeeper是HMaster的高可用集群的解决方案,保证同一时间,只有一个HMaster在运行,如果这个HMaster异常或者
HMaster异常或死亡,则通过竞争机制产生新的HMaster。同时zookeeper还监控着HRegionServer的状态,当HRegionServer异常时,HMaster会通过zookeeper就到HRegionServer上下线的状态。存储了-ROOT-表的地址和HMaster的地址,即作为元数据入口地址。
HMaster
HMaster在功能上主要负责Region的管理工作:
1、故障转移:当某个HRegionServer异常或死亡时,讲HRegion转移到其他HRegionServer上执行
2、在HRegin足够大时,HRegion会产生分裂,此时HMaster会分配新HRegion
3、管理用户对元数据的增、删、改、查操作
4、数据负载均衡:空闲时在HRegionServer之间迁移HRegion,调整HRegion分布
5、发送自己的位置给Cllient(通过zookeeper实现)
HRegionServer
1、处理分配的HRegion
2、刷新Cache到HDFS
3、维护HLog(容错)
4、处理来自用户的读写请求
5、处理HRegion变大之后的拆分
6、负责StoreFile的合并工作
HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family(列族)的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效
HRegin
数据表的横向切分
HBase每个表都会根据rowkey值被切分成不同的HRegion分散存储在HRegionServer中
如图:
在这里插入图片描述
Store
一个Region对应多个Store
一个Store就代表数据表中的一个列族
MenStore
内存数据的读写操作的具体实现
StoreFile
相当于数据表的某一个单列
HFlie
磁盘上保存原始数据的实际的物理文件
StoreFile是以HFile的形式存储在HDFS中的

HBase数据结构

在这里插入图片描述
rowkey
主键(最大64kb,实际使用10~100bytes)
数据根据rowkey排序
HRegion大小达到一定值时,裂变
HBase Table中访问的行的方式:
1、通过单个rowkey访问get ‘table_name’ ‘col_family_name’
2、通过rowkey的range(正则)访问
3、全表扫描scan
columnfamily
1、列族在物理存储上对应于HDFS的一个目录
2、HBase表中的每个列,都属于某一个列族
3、列族是表的schema的一部分(列不是),必须在使用表之前定义列族
4、列名都是以列族作为前缀
5、每一个列族对应一个store,类似于hive的分区操作一样,HBase相当于按列族进行了分区
columnqualifier
单列,列族下具体的某一列,一个列族可以有很多个单列
Cell
1、由{rowkey,columnfamily,version}唯一确定的单元
2、类似于excel里的一个单元格,数据以字节存储,没有类型
TimeStamp
1、每个cell中保存着一份数据的多个版本,由精确到毫秒的64位整数存储,可以由HBase写入时自动生成也可以用户指定
2、若用户指定,为了避免冲突,一定要用单cell中不重复的时间戳
3、单元格中的数据以时间戳倒序排列
4、为避免cell数据过大,HBase提供两种机制:保留最新的N条数据或者保留截至当下多长时间的数据

HBase操作

hbase shell:进入操作窗口
ctrl+backspace:删除内容
version:查看版本
status:查看状态
whoami:查看当前用户
list_namespace:查看命名空间
create_namespace:新建命名空间
describe_namespace:命名空间详情
list:查看所有表
list_namespace_table:查看具体表
create 'namespace:table_name',{NAME=>'col1',VERSION=>'value1'},{NAME=>'col2'}:建表
desc:查看表定义
scan:查看表数据
delete:删表数据(具体数据)
deleteall:删表数据(单条)
is_disabled:查看禁用表状态
disable:禁用表
enable:启用表
drop:删表(禁用表之后才能删表)
exists:查看表是否存在
get:查看表数据
put:修改表数据/增加表数据
param=get_table:定义变量(可使用变量调用数据增删改查,启禁表)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBase入门到精通》是一本关于HBase数据库的学习指南。它主要介绍了HBase的基本概念、架构和使用方法,以及如何进行高级配置和优化。这本书适合那些想要深入了解HBase技术的读者,无论是初学者还是有一定经验的开发人员。 首先,这本书会帮助读者了解HBase的起源和背景,介绍Hadoop生态系统中的HBase定位和关键特性。然后,它会详细解释HBase的数据模型和各个组件的功能。读者将学习如何设计数据表和列族,以及如何使用HBase的查询语言进行数据检索。 接下来,这本书会介绍HBase的架构和工作原理。读者将了解Region Server、Master Server和ZooKeeper等关键组件的功能和作用。同时,它还会讲解HBase的数据分布和复制机制,以及如何进行故障恢复和集群管理。 除了基础知识,这本书还会深入探讨HBase的高级应用和优化技巧。读者将学习如何构建高性能的HBase应用程序,包括数据插入、读取和更新的最佳实践。同时,它还会介绍HBase的二级索引、过滤器和缓存机制等高级功能,以及如何进行数据压缩和性能调优。 总的来说,通过学习《HBase入门到精通》,读者将能够全面掌握HBase的核心概念和技术,从而能够独立设计、开发和管理HBase数据库。无论是对于个人技能提升还是实际项目应用,这本书都是一份非常有价值的学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值