首页 > 其他分享 >HBase

HBase

时间:2024-11-17 18:58:26浏览次数:1  
标签:列族 单元格 版本号 行键 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(列簇)

标签:列族,单元格,版本号,行键,HBase,数据
From: https://www.cnblogs.com/wangxiaojian-lina/p/18550905

相关文章

  • HBase架构与基础命令
    HBase架构与基础命令一、了解HBase官方文档:https://hbase.apache.org/1.1 HBase概述HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于存储海量的结构化或者半结构化,非结构化的数据(底层是字节数组做存储的)HBase是Hadoop的生态系统之一,是建立在Hadoop文件......
  • hbase-2.2.7-分布式搭建
    1、下载安装包并上传到Linux,然后解压2、配置环境变量vim/etc/profile增加下面配置exportHBASE_HOME=/usr/local/soft/hbase-2.2.7exportPATH=$PATH:$HBASE_HOME/bin3、加载环境变量source/etc/profile4、修改配置文件vimhbase-env.sh增加下面配置ex......
  • hbase-2.2.7分布式搭建文档(附详细操作步骤命令及相关操作截图)
    hbase-2.2.7分布式搭建文档一,搭建前准备1.检查是否已经安装JDK2.搭建hbase前需要先搭建好hadoop3.检查zookeeper是否正常启动#启动zookeeper(三台都要启动)zkServer.shstart#查看zookeeper状态(一个leader两个follower)zkServer.shstatus4.到官网或国内镜像站下载hba......
  • 【大数据学习 | HBASE高级】hbase-phoenix 与二次索引应用
    1. hbase-phoenix的应用1.1概述:上面我们学会了hbase的操作和原理,以及外部集成的mr的计算方式,但是我们在使用hbase的时候,有的时候我们要直接操作hbase做部分数据的查询和插入,这种原生的方式操作在工作过程中还是比较常见的,以上这些方式需要使用外部的框架进行协助处理,其实hb......
  • HBase基础知识分享(二)
    HBase的Split机制Region的分裂策略HBase中的Region存储的是一张表的数据。当Region中的数据条数过多时,会直接影响查询效率,过大的Region会被拆分为两个Region,HMaster会将这些分裂的Region分配到不同的RegionServer上,最终达到负载均衡的目的,这是HBase的一个优点。常见的Region分......
  • HBase基础知识分享(一)
    写在前面今天来学习Hbase部分的知识!Zookeeper的ZAB协议ZAB(ZookeeperAtomicBroadcast)协议是Zookeeper的核心协议之一,用于保证集群中数据的一致性、顺序性和容错性。它包括以下几个关键阶段:Leader选举:选举出一个Leader节点来协调集群内的操作。事务提案:客户端提交的事务会......
  • Hbase讲解与安装与配置部署
    目录1.讲解一、HBase的起源与背景二、HBase的特点三、HBase的架构四、HBase的数据模型五、HBase的访问接口六、HBase的使用场景2.安装3.配置部署1.讲解HBase是一个分布式的、面向列的开源数据库,它是ApacheHadoop项目的子项目。以下是对HBase的详细讲解:一、H......
  • 存储数据库的传输效率提升-ETLCloud结合HBASE
    一、大数据存储数据库--HBASEHBase,作为一个开源的分布式列存储数据库,基于Google的Bigtable设计而成,专为处理大规模结构化数据而优化。使用HBase打造大数据解决方案的好处主要包括:高可扩展性,能够处理PB级的数据;实时读取和写入能力,适合实时数据分析;灵活的模式设计,支持动态列的添加,......
  • 【大数据技术基础 | 实验七】HBase实验:部署HBase
    文章目录一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤(一)验证Hadoop和ZooKeeper已启动(二)修改HBase配置文件(三)启动并验证HBase六、实验结果七、实验心得一、实验目的掌握HBase基础简介及体系架构;掌握HBase集群安装部署及HBaseShell的一些......
  • 016_HBase
    1HBase分布式介绍分布式用户​ 使用负载均衡,把请求分发给不同的服务器。​ redis16384​负载均衡器​​ session共享​ 向session放入数据​ SESSION共享内存。checkServer-redis​ RPC协议=》RMI》EJB=》Spring框架分布式系统​ 将服务器拆分。​ 多台电脑,多......