HBase数据存储

1、数据模型

  • Namespace(表命名空间):表命名空间不是强制的,当想把多个表分到一个组去统一管理的时候才会用到表命名空间。
  • Table(表):一个表由一个或者多个列族组成。数据属性,都在列族的定义中定义。
  • Row(行):一个行包含多个列。列通过列族分类。由于HBase是一个列式数据库,所以一个行中的数据可以分布在不同的服务器上。
  • Column Family(列族):列族是多个列的集合。列族的存在,提高存取性能。
  • Column   Qualifile(列):多个列组成一个行。列是可以随意定义的,一个行中的列不限名字、不限数量,只限定列族。
  • Cell(单元格):一个列中可以存储多个版本的数据。每个版本就成为一个单元格。
  • Timestamp(时间戳/版本号):用来标定同一个列中多个单元格的版本号。

注:

  • 在HBase中,rowkey按照字典排序。
  • HBase不支持表关联。
  • HBase部分支持ACID。(ACID即:原子性、一致性、隔离性、持久性)。

2、宏观架构:

以上图形说明了HBase的服务器角色构成:

  1. Master:负责启动的时候分配Region到具体的RegionServer,执行各种管理操作,比如Region的分割和合并。
  2. RegionServer:RegionServer上有一个或者多个Region。我们读取的数据就存储在Region上。
  3. HDFS:hadoop的一部分。HBase不是直接和服务器的硬盘交互的,而是和HDFS交互。因此HDFS是真正承载数据的载体。
  4. Zookeepeer:在HBase中扮演的角色类似于一个管家。管理着HBase中所有的ResgionServer信息,包括具体数据段放在哪一个RegionServer上。

 

 

由图5-4可知:

       一个ResgionServer包含有:一个WAL  和  多个Region。

WAL:预写日志,WAL是Write-Ahead Log的缩写。当操作到达Region的时候,HBase不管三七二十一把操作写到WAL里面去。HBase会先把数据放到基于内存实现的Memstore里,等数据达到一定的数量时才会刷写(flush)到最终储存的HFile内。

       作用:解决宕机之后的操作恢复问题,保证数据不会丢失。

多个Region:一段数据的集合。Region相当于一个数据分片。每一个Region都有起始rowkey和结束rowkey,代表了它所存储的row范围。

 

 

图5-5是单个Region内部的结构:

       一个Region包含有:每一个Region内都包含多个Stroe实例。

       Store:一个Store对应一个列族的数据,若一张表内有两个列族,则在一个Region里面就有两个Store。Stroe内部有MemStore和HFile两部分组成。

 

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

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

相关文章

(五)React受控表单、获取DOM

1. React受控表单 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 准备一个React状态值 const [value, setValue] useState()通过value属性绑定状态&#xff0c;通过onChange属性绑定状态同步的函数 <input type"text"…

精益思维在人工智能中的应用体现

随着AI技术的广泛应用&#xff0c;如何提高其效率、降低成本、优化性能&#xff0c;成为了业界关注的焦点。精益思维作为一种追求卓越、持续改进的管理理念&#xff0c;其在人工智能中的应用正逐渐展现出巨大的潜力。 一、数据精益化管理。数据是AI技术的核心&#xff0c;而数据…

高内聚与低耦合:工作中的重要性与应用

目录 ​编辑 前言 1.什么是高内聚与低耦合&#xff1f; 2.为什么高内聚和低耦合非常重要&#xff1f; 3.工作中的运用 总结 前言 在软件开发领域&#xff0c;高内聚与低耦合是设计原则中非常重要的概念。高内聚指的是模块内部的各个元素紧密地结合在一起&#xff0c;完成…

StartAI”梦想合伙人 ”招募计划

我们正火热招募AI设计师产品合伙人&#xff01;如果你对AI技术充满好奇&#xff0c;对设计有着独特的见解和热情&#xff0c;亦或者你想在日常的设计工作中提高效率&#xff0c;无论你是电商设计师、UI设计师、建筑师、插画师等其他各类设计领域的人才。那么这就是你不容错过的…

pyechart 创建柱形图

Pyecharts 是一个基于 Python 的开源数据可视化库&#xff0c;用于创建各种交互式的图表和可视化效果。它是在 Echarts 的基础上进行封装和优化&#xff0c;Echarts 是一个流行的 JavaScript 数据可视化库pyecharts 中文网站 : https://pyecharts.org/# pyecharts 模块 还支持…

工业物联网和工业互联网有啥区别?

如今数字化转型已成为工业领域的必然趋势&#xff0c;其中&#xff0c;工业物联网&#xff08;IIoT&#xff09;和工业互联网作为推动工业数字化转型的重要力量&#xff0c;它们的共同目标都是为了提升工业生产的效率、降低成本并推动创新&#xff0c;但在技术特点和应用场景上…

牛客热题:旋转矩阵

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;旋转矩阵题目链接方法一&#x…

使用Vue3+ElementPlus+高德地图实现在浏览器中搜索地点并被标记在地图中

效果描述 在页面的输入框中输入想要查询的地点&#xff0c;在输入框的下方会提示跟输入的关键字有关地点&#xff0c;然后按下回车键或者选择下方罗列的地点即可让地图跳转到搜索的位置。 效果展示 页面渲染完成的时候 输入想要查询的地点 按下回车键之后 代码实现 <temp…

通过语言大模型类学习python,卡哪问哪(一)

代码语法学习&#xff0c;代码解析 import matplotlib.pyplot as plt import numpy as np import PIL import tensorflow as tffrom tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.models import Sequential 一、语法解析 &#xff08;…

SwanLab系列教程:用swanlab.Text记录文本

SwanLab是一个由国内团队开源的机器学习实验跟踪工具&#xff0c;相比于Tensorboard有更丰富的功能、更友好的UI界面&#xff0c;以及更重要的云端同步、多人协作功能。 安装&#xff1a;pip install swanlab 本教程主要介绍如何用swanlab.Text记录文本&#xff0c;这在做NLP…

数据安全:Web3时代的隐私保护新标准

随着数字化时代的到来&#xff0c;我们的生活已经完全依赖于互联网和数据交换。然而&#xff0c;随之而来的是对个人隐私和数据安全的日益关注。在这个信息爆炸的时代&#xff0c;数据泄露、个人隐私侵犯和网络攻击等问题日益突出&#xff0c;而Web3技术的崛起正带来了一种全新…

乡村振兴的科技创新引领:加强农业科技研发,推广先进适用技术,提高农业生产效率,助力美丽乡村建设

目录 一、引言 二、农业科技研发的重要性 &#xff08;一&#xff09;提升农业生产效率 &#xff08;二&#xff09;促进农业产业升级 &#xff08;三&#xff09;保障粮食安全 三、加强农业科技研发的策略 &#xff08;一&#xff09;加大投入力度 &#xff08;二&…

Shiro有key但无回显利用链子-JRMP大法

前言 shiro在手天下我有&#xff0c;扫出key直接梭哈getshell&#xff0c;横扫内网。但要是像这种情况&#xff0c;直接下班拜拜跑路&#xff0c;没有链子玩毛线… 直到出现了这么一个工具可以通过JRMP协议探测是否存在漏洞&#xff0c;很显然上面工具是做不到的&#xff0c;实…

有什么方便的ai人工智能写作软件?7个软件让你快速进行写作

有什么方便的ai人工智能写作软件&#xff1f;7个软件让你快速进行写作 当然&#xff01;这里有几款其他的AI人工智能写作软件&#xff0c;可以帮助你快速进行写作&#xff1a; AI创作云 功能特点&#xff1a; 这是一款基于AI的写作助手&#xff0c;可以帮助你生成高质量的文章…

并发编程理论基础——可见性、原子性和有序性问题(一)

核心问题&#xff1a;分工&#xff0c;同步&#xff0c;互斥 分工&#xff1a;如何高效地拆解任务并分配给线程 生产者-消费者模式、Thread-Per-Message模式、Worker-Thread模式、ComplateableFuture和CompletionServiceJava SDK 并发包里的 Executor、Fork/Join、Future 本质上…

springboot宠物领养管理系统计算机毕业设计源码46534

摘 要 网络发布信息有其突出的优点&#xff0c;即信息量大&#xff0c;资源丰富&#xff0c;更新速度快等&#xff0c;很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领用的系统&#xff0c;为宠物爱好者提供一个信息发布的平台&#xff0c…

C++三角函数和反三角函数的使用

注意C中三角函数使用的是弧度制(3.14) 。示例图中角为30度 sin(30/180*PI);//已知角度&#xff0c;求正弦 cos(30/180*PI);//已知角度&#xff0c;求余弦 tan(30/180*PI);//已知角度&#xff0c;求正切asin(a/c);//已知正弦值&#xff0c;求弧度 acos(b/c);//已知余弦值&#x…

html和css创建一个简单的网页

html代码及解析 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS Example</title><lin…

android studio CreateProcess error=2, 系统找不到指定的文件

【问题记录篇】 在AndroidStudio编译开发jni相关工程代码的时候&#xff0c;编译遇到的这个报错&#xff1a; CreateProcess error2, 系统找不到指定的文件。排查处理步骤: 先查看Build Output的具体日志输出 2.了解到问题出在了NDK配置上&#xff0c;此时需要根据自己的gra…

Vue3【十九】自定义Hooks钩子 将数据和方法分组

Vue3【十九】自定义Hooks钩子 将数据和方法分组 Vue3【十九】自定义Hooks钩子 将数据和方法分组 每个分组都可以放置 各种生命周期钩子 分组和可以使用计算属性等 案例截图 目录结构 代码 person.vue <template><div class"person"><h2>Vue3自定…