首页 > 其他分享 >HBase

HBase

时间:2024-11-24 20:34:12浏览次数:3  
标签:列族 单元格 版本号 行键 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/18566311

相关文章

  • 再学HBase,关于HBase的一些基础知识 | 如何集成在java中
    HBase简介在使用方面:HBase是一种数据仓库,是基于hdfs的nosql数据源,数据都是存放在hdfs上的,不需要像hive一样再去运行MapReduce进行长时间运算。特点:在phonenix/hive的集成下才可以支持sql,本身是有自己的dql语言的。具有一级索引rowKey,基于一级索引查询hbase的表都是物理表,......
  • HBase与HDFS&Hive
    在大数据领域中,HBase和HDFS是两种常用的存储系统。它们各自有其独特的特性和优势,但也有一些关键的差异。理解这些差异可以帮助我们更好地选择适合我们需求的存储解决方案。HBase:HBase是一个分布式列存储数据库,它是ApacheHadoop生态系统的一部分。它以行键为索引,支持高性能的随机......
  • HBASE的操作
    publicclassHBaseApp{publicstaticvoidmain(String[]args)throwsIOException{System.out.println("----");//1.创建一个配置文件对象Configurationconf=HBaseConfiguration.create();//conf.set("hbase.zookeeper......
  • Hbase分布式数据库
    目录简介实验环境实验步骤环境搭建下载安装修改配置文件启动Hbase了解Hbase基础语法Hbase简单实验简介Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。利用Hbase技术可在廉价PCServer上搭建起大规模结构化存储集群。Hbase是非关系型数据库,它不要求数......
  • Error while loading conda entry point: anaconda-cloud-auth (cannot import name
    这个错误是由于conda环境中的某些插件或依赖损坏,特别是在conda.plugins.types模块中无法找到ChannelAuthBase。这通常发生在conda安装不完整、升级失败或插件包损坏的情况下。可能的解决方案:1.更新conda首先尝试更新conda,这可以修复一些与依赖相关的问题:condaupdatecon......
  • SFI-HBase一种基于二分空间填充曲线的HBase多维索引(小论文)
    SFI-HBase:一种基于二分混合空间填充曲线的HBase多维索引摘要HBase是一款流行的开源分布式数据库,能够支持海量数据的实时读写。然而,HBase并没有提供对多维索引的支持。针对这一问题,本文从线性化方法入手,使用Z曲线等支持二分划分的空间填充曲线混合理论性质优良的其他空间......
  • 基于二分混合空间曲线的HBase多维索引构建及查询优化问题研究
    目录1绪论11.1研究背景与意义11.2国内外研究现状21.2.1索引技术21.2.2空间填充曲线51.3论文主要工作61.4论文章节安排72相关理论基础与技术简介82.1大数据存储与计算技术82.1.1Hadoop生态圈82.1.2HDFS82.1.3HBase92.1.4SparkStreami......
  • 轻松应对亿级数据,HBase Scan读取速度翻倍
    轻松应对亿级数据,HBaseScan读取速度翻倍HBase是一种基于Hadoop的分布式列存储数据库,它支持大规模结构化数据的存储和随机访问。在HBase中,扫描(Scan)是一种读取表中数据的方式,它可以返回表中满足条件的一部分或全部数据。本文将介绍HBase中扫描的概念、使用方法和性能优化。1扫描......
  • HBase 源码阅读(三)创建表流程
    前言上两篇介绍了HMaster完整进程的启动,现在开始介绍一下HMaster创建表的流程1.创建表的流程下面这一部分通过ChatGPT来生成在HBase中,通过Java编写创建表的过程涉及多个组件和源码的位置。这里为您详细解析这个过程涉及的主要类和方法。API层级的调用:用户首先......
  • 基于Hbase的微博案例
    基于Hbase的微博案例需求1、发布微博内容     a.在微博内容表中添加一条数据(发布者)  b.在微博内容接收邮件箱表对所有粉丝用户添加数据(订阅者)    scan'weibo:receive-content-email',{VERSIONS=>5}2、添加关注用户  a.在微博用户关系表中添加新的好......