【大数据精讲】HBase基本概念与读写流程

目录

基本概念

概念

数据模型

Name Space命名空间

Table

Row

Column

Time Stamp

Cell

逻辑结构

json

物理存储结构

基础架构

Meta表架构

RegionServer架构

⭐️写流程

⭐️读流程


基本概念

Apache HBase – Apache HBase™ Home

" This project's goal is the hosting of very large tables -- billions of rows X millions of columns --"

概念

  • 海量数据:10亿行、100万列
  • 非关系型数据库:kv结构
  • 稀疏的:不像关系型数据库表,即使没有数据也要留空
  • 分布式的
  • 持久的
  • 多维的:hashmap是单维度的
  • 排序的:排序后可以使用比如二分查找
  • map映射:k:v
    • key:行键、列键和时间戳索引作为key
    • value:未解释的字节数组,未解释指即经过序列化的

HBase使用与BigTable非常相似的数据模型,用户将数据行存储在带标签的表中。数据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可以具有疯狂变化的列。

数据模型

Name Space命名空间

类似数据库概念,其下有多个表,自带两个:hbase和default

  • hbase:系统使用,存放内置表,不要操作
  • default:用户默认使用的

Table

hbase在定义表时只需要声明列族即可,不需要声明具体的列。数据存储是稀疏的,可以动态、按需指定,可以轻松应对字段变更

Row

行由RowKey和多个Column组成的,数据是按照RowKey字典顺序存储的,查询时只能按照RowKey进行检索,所以RowKey的设计十分重要。

hbase不能写sql,比如where name=xx不行,没这个功能,只能按rowkey读取,这也是hbase不太好用的原因。

Column

ColumnFamily列族+ColumnQualifier列名组成。

如info:name,info:age

建表时只需要指明列族,而列名无需预先定义。

Time Stamp

用来标记版本

Cell

即k:v模型,key由{rowkey,column family: column qualifier, timestamp}组成来,唯一确定的单元。cell中的数据全部是字节码形式存储。

cell针对的是底层存储StoreFile而言的,指的是底层存储的一行数据,其他是针对表而言的

逻辑结构

json

  • 列族:column family
  • 列:column
  • row key:行号,用来排序和整理数据,特点:一定是按照字典序排序好的,字典序:row_key11在row_key2前面

横向拆分:按行拆分region

竖向拆分:按列族拆分为store

物理存储结构

物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不存储。

  • Timestamp
    • 时间戳用于标记版本
    • 不同版本version的数据根据timestamp进行区分,读取数据默认读取最新的版本
    • HDFS存储有一个标志性的特点:不能够修改数据
    • 在不能改数据的基础上怎么实现改,以时间戳作为版本
  • Type:标记,写入Put 删除Delete
    • 对于删除操作,其类型为DeleteColumn

基础架构

Meta表架构

警告:不要修改

System Table:hbase:meta

表名:[table],[region start key],[region id]

第一列:info:regioninfo 为region信息,存储一个HRegionInfo对象

第二列:info:server 当前region所处的RegionServer信息,包含端口号

第三列:info:serverstartcode 当前region被分到RegionServer的起始时间

如果一个表处于切分的过程中,即region切分,还会多出两列info:splitA和info:splitB,存储值也是HRegionInfo对象,拆分结束后,删除这两列

RegionServer架构

⭐️写流程

master只负责修改和写hbase/meta表,读找zk就可以了,zk会告诉你表在哪

仅能保证单文件HFile/storeFile有序

⭐️读流程

hash有个特点:说没有一定没有,说有不一定有

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/341633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用DTS实现TiDB到GaiaDB数据迁移

1 概览 本文主要介绍通过 DTS 数据迁移功能,结合消息服务 for Kafka 与 TiDB 数据库的 Pump、Drainer 组件,完成从TiDB迁移至百度智能云云原生数据库 GaiaDB。 消息服务 for Kafka:详细介绍参见:消息服务 for Kafka 产品介绍百度智…

C#winform上位机开发学习笔记6-串口助手的断帧功能添加

1.功能描述 按照设定时间对接收数据进行断帧(换行) 应用于需要接收完整数据包的场景,例如下位机发送一包数据为1秒,每100ms发送一组数据 大部分用于接收十六进制数据时 2.代码部分 步骤1:添加计时器,设置默认时间为500ms 步骤…

MySQL-函数-日期函数

常见的日期函数 案例

《大型语言模型自然语言生成评估》综述

在快速发展的自然语言生成(NLG)评估领域中,引入大型语言模型(LLMs)为评估生成内容质量开辟了新途径,例如,连贯性、创造力和上下文相关性。本综述旨在提供一个关于利用LLMs进行NLG评估的全面概览…

特斯拉FSD的神经网络(Tesla 2022 AI Day)

这是特斯拉的全自动驾驶(Full Self Driver)技术结构图,图中把自动驾驶模型拆分出分成了几个依赖的模块: 技术底座:自动标注技术处理大量数据,仿真技术创造图片数据,大数据引擎进不断地更新&…

MobaXterm解决session保存限制

自从用了MobaXterm以后,才知道这个软件会比xshell好用太多,但是免费版对会话有限制,保存14个以后就不能再保存,对于我们开发要连接好多服务器的话,就比较头疼了,作为程序员那肯定是有解决办法的&#xff0c…

php学习

php基础语法 一 php程序 1.php标记 开始标记<?php 和结束标记 ?>中间写 PHP 代码 当解析一个文件时&#xff0c;PHP 会寻找起始和结束标记&#xff0c;也就是告诉php 开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去&#xff…

个人云服务器docker搭建部署前后端应用-myos

var code "87c5235c-b551-45bb-a5e4-9593cb104663" mysql、redis、nginx、java应用、前端应用部署 本文以单台云服务器为例&#xff1a; 1. 使用腾讯云服务器 阿里或其他云服务器皆可&#xff0c;类似 安装系统&#xff0c;现在服务器系统都集成安装了docker镜像&a…

区域入侵烟火检测智慧安监AI智能分析网关V4如何添加新用户并分配权限?

AI边缘计算智能分析网关V4性能高、功耗低、检测速度快&#xff0c;易安装、易维护&#xff0c;硬件算法可按需组合、按场景配置&#xff0c;每个摄像头可同时配置3种算法&#xff0c;能同时对16路视频流进行处理和分析。硬件内置近40种AI算法模型&#xff0c;支持对接入的视频图…

Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合

作者&#xff1a;来自 Elastic Jrgen Obermann, Piotr Kobziakowski 让我们来谈谈大型企业人力资源领域中一些很酷且改变游戏规则的东西&#xff1a;生成式 AI 和 Elastic Stack 的绝佳组合。 现在&#xff0c;想象一下大型电信公司的典型人力资源部门 — 他们正在处理一百万件…

小红书达人推广模式有哪些,品牌投放策略总结

小红书是一个以种草为核心的平台&#xff0c;而品牌方进行种草时&#xff0c;就需要依托达人的力量。今天我们和大家分享下小红书达人推广模式有哪些&#xff0c;品牌投放策略总结&#xff01; 一、小红书达人推广模式有哪些 1. 明星种草 这种小红书达人推广模式&#xff0c;依…

利用STM32CubeMX和keil模拟器,3天入门FreeRTOS(2.0) —— 如何删除任务

前言 &#xff08;1&#xff09;FreeRTOS是我一天过完的&#xff0c;由此回忆并且记录一下。个人认为&#xff0c;如果只是入门&#xff0c;利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后&#xff0c;再去学习网上的一些其他课程也许会简单很多。 &#xff08;2&am…

WPF多值转换器

背景&#xff1a;实现Slider拖动可以调整rgb 单转换器&#xff1a;WPF中数据绑定转换器Converter-CSDN博客 在View中&#xff1a; <StackPanel Orientation"Vertical"><Slider x:Name"slider_R" Minimum"0" Maximum"255" Wi…

Python爬虫采集下载中国知网《出版来源导航》PDF文档

时隔一年&#xff0c;很久没更新博客了。今天给大家带来一个采集 &#xff1a;出版来源导航 这个是网址是中国知网的&#xff0c;以下代码仅限于此URL&#xff08;出版来源导航&#xff09;采集&#xff0c;知网的其他网页路径采集不一定行&#xff0c;大家可以试试。 以下代码…

《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法

《绝地求生大逃杀》怎么买衣服&#xff1f;游戏中好看的服装有不少&#xff0c;大家可能开箱并没开出来&#xff0c;想买却不知具体的入手途径&#xff0c;今天闲游盒带来《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法&#xff0c;希望对各位有帮助。 打开Steam&#xf…

ffmpeg和opencv一些容易影响图片清晰度的操作

ffmpeg 转视频或者图片&#xff0c;不指定码率清晰度会下降 ffmpeg -i xxx.png xxx.mp4 码率也叫比特率&#xff08;Bit rate&#xff09;(也叫数据率)是一个确定整体视频/音频质量的参数&#xff0c;秒为单位处理的字节数&#xff0c;码率和视频质量成正比&#xff0c;在视频…

高效办公-电脑的基本组成

作为一位网络工程师在公司内部混久了也兼职了桌面运维了&#xff0c;感觉做网管也是有一些坑的&#xff0c;所以记录一下吧。然后忽然觉得公众号内容有点专业了&#xff0c;那就增加一点办公常识吧&#xff0c;主要是一些电脑使用方面的设置和简单优化&#xff0c;利人利己。 一…

RAR分卷压缩文件可以合并成一个吗?推荐2个方法!

有时候文件太大&#xff0c;我们在压缩RAR文件时会选择压缩成分卷文件&#xff0c;这样更便于传送。如果后续只想要一个压缩包&#xff0c;如何把RAR分卷压缩文件合并起来呢&#xff1f;下面小编分享2个方法&#xff0c;不清楚的小伙伴一起来看看吧&#xff01; 方法一&#xf…

linux安装docker(入门一)

环境&#xff1a;centos 7(linux) 网站 官网: https://docs.docker.com/ Docker Hub 网站: https://hub.docker.com/ 容器官方概述 一句话概括容器&#xff1a;容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 &…

[分章:阅读]《我的第一本算法书》

第一章数据结构 1.链表 1、数据结构之一&#xff0c;线性排列数据&#xff0c;指针链接数据&#xff1b;访问O&#xff08;n&#xff09;&#xff0c;删除/添加O&#xff08;1&#xff09; 2、类似链条。 2.数组 1、线性排列数据&#xff0c;含数据下标&#xff08;即索引&…