HBase
1.private私有化,this,构造方法,面向对象标准写法(1,2,3)2.Extends继承3.static 静态4.final 关键字5.多态6.abstract 关键字7.接口8.常用类--Scanner,object9.常用类--String10.常用类--StringBuffer11.异常问题解决12.递归13.递归举例(test)14.IO流 - File()文件的相关知识15.IO流读写文件(字节流(单个字节,字节数组),字节缓冲流(..),字符流(..),字符缓冲流(..))16.多线程17.线程安全案例18.定时器19.线程-设计模式20.网路编程21.常用类:包装类,System类,Random类,Arrays22.Collection23.泛型<>类 方法 接口24.增强for循环25.Map集合26.clickhouse27.redis 安装28.redis 命令29.Redis持久化机制与位图api30.hadoop31.mapreduce流程32.hive--学习33.数据仓库34.HBaseAPI35.hbase 过滤器36.hbase进阶
37.HBase
什么是hbase?
HBase是一个高可靠,高性能,面对列可伸缩的分布式文件系统,可以存储海量的结构化,半结构化,非结构化数据(底层是按照字节数组存储的)
(HBase利用HDFS作为文件存储系统,利用zookeeper作为元数据的元数据存储)
HBase 与 HDFS 比较
HBase内部使用哈希表提供随机接入通过HashMap键快速查找到表值
HBase的特点
* 他是分布式数据库
* 列式存储
* 稀疏性
Hbase需要通过行键,列簇,列名,版本号来确定一个列值
数据模型
HBase通过表格的模式存储数据,每个表格由列和行,每个列被划分为若干个列簇
# 三维有序:
1) 一个hbase表中,行键之间按照字典顺序排序
2)一行中每一个列名之间按照字典顺序排序
3)同一个列多个版本号数据,版本之间按照字典顺序排序
HBase数据模型
HBase将数据存放在带有标签的**表**中,表由**行和列**组成,
行和列交叉确定一个**单元格**,单元格有**版本号**,版本号自动分配,
为数据插入该单元格时的**时间戳**。单元格的内容没有数据类型,**所有数据都被视为未解释的字节数组**。
表格中每一行有一个**行键**(也是字节数组,任何形式的数据都可以表示成字符串,比如数据结构进行序列化之后),
**整个表根据行键的字节序来排序**,所有对表的访问必须通过行键。
表中的列又划分为多个**列族**(column family),同一个列族的所有成员具有相同的前缀,具体的列由列修饰符标识,
因此,**列族和列修饰符**合起来才可以表示某一列,比如:info:format、cotents:image
在创建一个表的时候,列族必须作为模式定义的一部分预先给出,而**列族是支持动态扩展的**,
也就是列族成员可以随后按需加入。物理上,所有的列族成员一起存放在文件系统上,
所以实际上说HBase是面向列的数据库,更准确的应该是**面向列族**,
调优和存储都是在列族这个层次上进行的。一般情况下,同一个列族的成员最后具有相同的访问模式和大小特征。
总结起来,HBase表和我们熟知的关系型数据库的表很像,不同之处在于:**行按行键排序,列划分为列族,单元格有版本号,没有数据类型。**
Hbase数据坐标
我们由【行键,列簇,列名,版本号(时间戳。自动分配)】确定一个单元格,单元格的数据没有类型,全部都是由字节码形式存储,我们可以将她看做成一个思维坐标
HBase系统架构
HBase的组件
HBase由三种类型的服务器以主从模式构成:
Region Server:负责数据的读写服务,用户通过与Region server交互实现对数据的访问
HBase HMaster:负责Region的分配及数据库的创建和删除等操作
ZooKeeper:负责维护集群的状态
Memstore 与 storefile
- 一个region由多个store组成,一个store对应一个CF(列簇)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!