HBase数据存储

news2024/11/25 13:50:48

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.coloradmin.cn/o/1817101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javaWeb项目-ssm+vue个人博客网站管理系统功能介绍

本项目源码:java-基于ssmvue的个人博客网站的设计与实现源码说明文档资料资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术&#xff1a…

第 5 章:面向生产的 Spring Boot

在 4.1.2 节中,我们介绍了 Spring Boot 的四大核心组成部分,第 4 章主要介绍了其中的起步依赖与自动配置,本章将重点介绍 Spring Boot Actuator,包括如何通过 Actuator 提供的各种端点(endpoint)了解系统的…

DDD领域应用理论实践分析回顾

目录 一、DDD的重要性 (一)拥抱互联网黑话(抓痛点、谈愿景、搞方法论) (二)DDD真的重要吗? 二、领域驱动设计DDD在B端营销系统的实践 (一)设计落地步骤 &#xff0…

小程序无法调用服务端问题排查

1、问题描述 突然有一天线上的小程序不能登录,经查小程序无法调用。经查无法小程序页面无法调用后台服务。 2、排查过程 由于无法登录小程序发布服务器,无法测试小程序前端服务器到服务端网络,并且小程序无法看到日志。所以就得从服务端和网…

使用CSS、JavaScript、jQuery三种方式实现手风琴效果

手风琴效果有不少,王者荣耀官网(源网址 https://pvp.qq.com/raiders/ )有一处周免英雄,使用的就是手风琴效果,如图所示。 我试着用css、js、jQuery三种方式实现了这种效果,最终效果差不多,美中不…

IDEA创建简单web(servlet)项目(server为tomcat)

引言 鉴于网上很少有关于IDEA开发servlet项目的教程(24版idea,并且servlet技术十分复古,很少有人用到,能够理解,该文章旨在为在校的学生提供一个参考,项目技术简单)本人在此总结从头开始到项目…

MATLAB算法实战应用案例精讲-【数模应用】有序Logit(Logistic)分析

目录 算法原理 logit回归分析步骤 二元logit分析 多分类logit分析 有序logit分析 总结 SPSS 1、问题与数据 2、对数据结构的分析 3、SPSS分析方法 SPSSAU 有序Logit回归案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 提示…

Joplin Typora 粘贴图片 | 当使用Typora作为Joplin编辑器时,如何粘贴图片并上传到Joplin服务器,替换链接

一、背景 当我们使用Joplin时,上传图片时会自动上传到Joplin服务器并替换链接 但是Joplin的编辑器不好用,我更习惯用Typora来编辑, 然而Typora中上传的图片只能在本地,无法上传到Joplin服务器,在其他客户端也看不到图片…

迈向『闭环』| PlanAgent:基于MLLM的自动驾驶闭环规划新SOTA!

中科院自动化所深度强化学习团队联合理想汽车等提出了一种新的基于多模态大语言模型MLLM的自动驾驶闭环规划框架—PlanAgent。该方法以场景的鸟瞰图和基于图的文本提示为输入,利用多模态大语言模型的多模态理解和常识推理能力,进行从场景理解到横向和纵向…

若依RuoYi-Vue分离版—免登录直接访问

若依RuoYi-Vue分离版—免登录直接访问 如何不登录直接访问前端:后端:方法1:在SecurityConfig.java中设置httpSecurity配置匿名访问方法2:在对应的方法或类上面使用Anonymous注解。 如何不登录直接访问 官网有说明:如何不登录直接…

pyechart 创建柱形图

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

day35| 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

文章目录 前言860.柠檬水找零思路方法一 406.根据身高重建队列思路方法一 452. 用最少数量的箭引爆气球思路方法一 总结 前言 860.柠檬水找零 思路 很简单,贪心只有一个,如果20优先用105找零,因为5更加万能一些 方法一 class Solution(ob…

RabbitMQ实践——配置Prometheus和Grafana报表

大纲 启用rabbitmq_prometheus插件安装启动Prometheus创建用户下载并解压修改配置启动 安装启动grafana安装启动配置数据源 在《RabbitMQ实践——在Ubuntu上安装并启用管理后台》中我们已经安装成功RabbitMQ及其管理后台。在此基础上,我们将打通它和Prometheus、Gra…

26.0 Http协议

1. http协议简介 HTTP(Hypertext Transfer Protocol, 超文本传输协议): 是万维网(WWW: World Wide Web)中用于在服务器与客户端(通常是本地浏览器)之间传输超文本的协议.作为一个应用层的协议, HTTP以其简洁, 高效的特点, 在分布式超媒体信息系统中扮演着核心角色. 自1990年提…

Python图像处理——基于Pytorch框架ResNet152特征提取的MNIST手写数字识别

1. 数据集介绍 MNIST手写数字数据集: http://yann.lecun.com/exdb/mnist/ MNIST 数据集一共有 7 万张图片,其中 6 万张是训练集, 1 万张是测试集。每张图片是 28 28 的 0−9 的手写数字图片组成。每个图片是黑底白字的形式,黑底…

【全开源】餐饮点餐小程序源码(ThinkPHP+FastAdmin+Uniapp)

🍽️餐饮点餐小程序:让美食触手可及 一款基于ThinkPHPFastAdminUniapp开发的点餐小程序,支持单人点餐,还满足多人协同点餐(高级授权),支持多门店管理,并提供先吃后付和先付后吃两种支付方式。​ &#x1…

桌面应用开发框架比较:Electron、Flutter、Tauri、React Native 与 Qt

在当今快速发展的技术环境中,对跨平台桌面应用程序的需求正在不断激增。 开发人员面临着选择正确框架之挑战,以便可以高效构建可在 Windows、macOS 和 Linux 上无缝运行的应用程序。 在本文中,我们将比较五种流行的桌面应用程序开发框架&…

C#开源项目推荐:Watt Toolkit跨平台游戏工具箱支持github网络加速

Watt Toolkit是一个开源跨平台的多功能游戏工具箱,主要专注于增强玩家在Steam平台上的游戏体验及国外网站平台加速。 主要功能 兼容性 用户数据 团队背景 github加速功能 使用方法:用户只需在Watt Toolkit中启用网络加速功能,并选择对Gi…

揭秘Netflix背后的魔法:如何用三层架构打造个性化推荐帝国

推荐系统就像一家餐厅的菜单推荐 想象一下,你走进一家餐厅,面对琳琅满目的菜单,不知道点什么好。这时候,服务员给你推荐了几道菜,这些推荐是基于你以往的口味偏好和其他顾客的选择。Netflix的推荐系统也是类似的&…

Matlab图像处理——细胞图像的分割和计数显示

一. 项目介绍 使用MATLAB编写的细胞图像分割及计数系统,实现了对图像内细胞的计数,以及对每个细胞周长和面积的测量,并分别展示了分割后的每个细胞的图像。实验步骤共分为图像预处理、图像预分割、空洞填充、黏连细胞分割、细胞个数统计、细胞…