HBASE知识点

news2024/11/24 17:34:57

HBASE是什么?

  • 高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库。
  • 利用HDFS作为其文件存储系统,利用MapReduce来处理HBase中的海量数据。利用Zookeeper作为其分布式协同服务。
  • 用于存储非结构化和半结构化的松散数据。

HBase数据模型

  • RowKey: 唯一标识一行记录,按字典顺序排序,RowKey只能存储64K的字节数据。

字典顺序存储,在合理的rowkey设计情况下,范围查询很快。

  • Column Family列族:
    – HBASE中每个列都归属于某个列族,列族必须作为表模式定义的一部分先给出。
    – 列名以列族作为前缀,每个列族都可以有多个列成员(column),新的列族成员可以随后按需动态加入。
    – 权限控制、存储以及调优都是在列族层面进行的。
    – HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。
  • TimeStamp:
    – 在HBase每个cell存储单元对同一份数据有多个版本,更加唯一的时间戳来区分每个版本之间的诧异,不同版本的数据安装时间大圩排序,最新的数据版本排在最前面。
    – 时间戳类型是64位整型。
    – 时间错可以由HBASE在数据写入时自动赋值,此时时间戳是精确到毫秒的当前系统时间。
    – 时间戳也可以由用户显示赋值,如果应用程序要避免数据版本冲突,就必须自己生产具有唯一性的时间戳。
  • Cell单元格
    – 有行和列的坐标交叉决定。
    – 单元格室友版本的。
    – 单元格的内容是未解析的字节数组:{rowkey,column(=family+qualifier),version}唯一确定的单元
    – cell中的数据是没有类型的,全部是字节数组形式存储的。

HBase架构

在这里插入图片描述
在这里插入图片描述

Client

访问Hbase的接口并维护Cache加快对Hbase的访问。

Zookeeper

保证集群中只有一个活跃的Master。存储所有Region的寻址信息。实时监控Region的上线、下线信息,并实时通知Master。存储Hbase的schema和table元数据。

HMaster

为RegionServer分配Region,负责RegionServer的负责均衡。发现失效的RegionServer并重新分配其下的Region,管理用户对Table的CRUD。

HRegionServer

负责维护HMaster分配给他的Region,处理这些Region的IO请求。当Region变大到一个阈值后,RegionServer会进行Region拆分,并告知Master节点,由Master协调拆分后的Region进行迁移。

HRegion

HBase自动把表水平划分成多个Region,每个Region会保存一个表里面某段连续的数据(类似MYSQL表的横向拆分),每个表最开始只有一个Region,随着数据不断插入,Region不断增大,当增大到一个阈值时,Region就会才分成两个新的Region(裂变)。当Table中的行不断增多,就会有越来越多的Region,这样一张完整的表被保存在多个RegionServer上。

Store的MemStore和StoreFile

一个Region有多个Store组成,一个Store对应一个列族。Store报货位于内存中的Memstore和位于磁盘中的StoreFile。
写操作先写入Memstore,当Memstore中的数据打到某个阈值,HRegionServer会启动FlashCache进行进行写入StoreFile,每次写入形成单独的StoreFile。当StoreFile文件数量增长到一定的阈值后,系统会进行合并,在合并过程中会进行版本合并和删除工作(写操作的时候都是append操作,不会有更新和删除动作,所以速度很快),形成更大的StoreFile。当一个Region所有的StoreFile的大小和数量超过一定的阈值后,会把所有的Region分隔成两个,并由HMaster分配到相应的RegionServer服务器,实现负载均衡
读操作先在Memstore找,找不到去blockCache找,找不到再到StoreFile找。

blockCache是Hbase的读缓存,HBase采用最近最少访问策略来管理。

HLog

在HBase写操作时会先写HLog,然后再往Memstore写。HLog先写到内存,然后每秒进行一次持久化。在写入Memstore后,持久化到StoreFile之前如果HRegionServer挂掉了,则通过HLog进行数据恢复。如果HLog持久化之前挂掉了,那么这一秒的数据将丢失。

HFILE

StoreFile存储在HDFS中的文件名称。

写操作

  1. 访问ZK得到元数据表地址。
  2. 访问RegionServer找到列族Store;
  3. 往Store的MemStore写数据(先写入HLog,再写入MemStore)。
  4. MemStore在数据快满或满64M的时候进行持久化到StoreFile。

读操作

  1. 访问ZK得到元数据表地址。
  2. 访问RegionServer找到列族Store。
  3. 从MemStore读数据,如果MemStore中没有就从blockCache(读缓存)读。
  4. blockCache没有则从磁盘读取,如果读取到则返回并缓存到blockCache。

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

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

相关文章

makefile的编写:由浅入深

文章目录 准备文件Makefile版本一Makefile版本二Makefile版本三Makefile版本四Makefile版本五 准备文件 // fun1.c #include <stdio.h> void fun1() {printf("this is fun1\n"); }// fun2.c #include <stdio.h> void fun2() {printf("this is fun2…

Java面试常用函数

1. charAt() 方法用于返回字符串指定索引处的字符。索引范围为从 0 到 length() - 1。 map.getOrDefault(num, 0) :如果map存在num这个key&#xff0c;则返回num对应的value&#xff0c;否则返回0. Arrays.sort(nums); 数组排序 Arrays.asList("a","b",&q…

SpringMVC中的JSR303与拦截器的使用

一&#xff0c;JSR303的概念 JSR303是Java中的一个标准&#xff0c;用于验证和校验JavaBean对象的属性的合法性。它提供了一组用于定义验证规则的注解&#xff0c;如NotNull、Min、Max等。在Spring MVC中&#xff0c;可以使用JSR303注解对请求参数进行校验。 1.2 为什么要使用J…

2023年墨西哥 SP/BMV IPC 研究报告

第一章 指数概况 1.1 指数基本情况 墨西哥 S&P/BMV IPC 指数衡量在墨西哥证券交易所 (Bolsa Mexicana de Valores, BMV)上市&#xff0c;规模最大、流动性最高的股票表现。提供一个覆盖墨西哥股市的广泛、具有代表性且可轻易复制的指数。根据多元化要求&#xff0c;按市值…

Redis哨兵Cluster群集 搭建

Redis群集 Redis群集有三种模式 主从同步/复制哨兵模式Cluster群集 主从同步/复制 概念 主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复缺陷…

ENVI_IDL: 基础语法详解

01 题目 02 代码说明 题目本身很简单&#xff0c;但是我自己加了一些东西进去增加难度。主要包括print函数的封装、格式化字符串&#xff0c;但是不影响代码的阅读。&#xff08;注&#xff1a;对于没有语言基础的人而言相对阅读困难&#xff0c;但是由于IDL是解释型语言&…

文字点选验证码识别(下)-训练一个孪生神经网络模型

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 文章中没有代码,只有过程思路,请大家谨慎订阅。…

Windows下的Elasticsearch-head安装

Windows下的Elasticsearch-head安装 参考&#xff1a;https://gitcode.net/mirrors/mobz/elasticsearch-head 需要用到 npm 命令&#xff0c;这里可以提前下载安装下Node.js 即可自动安装npm&#xff1b; Node.js 下载安装地址&#xff1a;https://nodejs.org/en/download # 进…

【Unity每日一记】音频,麦克风,粒子和拖尾渲染器

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

LCD1602液晶显示屏介绍和程序开发

1.LCD1602概述 LCD1602&#xff08;Liquid Crystal Display&#xff09;是一种工业字符型液晶&#xff0c;能够同时显示 1602 即 32 字符(16列两行) 引脚说明第 1 脚: VSS 为电源地第 2 脚: VDD 接 5V 正电源第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱&…

华为云云耀云服务器L实例评测| ultralytics最先进模型YOLOv8深度学习AI训练

目录 前言 登录服务器 安装pyhton 部署yolov8 安装Pytorch 下载权重文件 训练模型 前言 前几期我们在云耀云服务器L实例上分别使用docker和直接在centos上部署了yolov5识别API&#xff0c;前端项目vue&#xff0c;后端项目.net Core Web Api,但是从监控图上来看&#…

联网汽车和网络犯罪:入门

正在权衡如何投资预算的原始设备供应商 ( OEM ) 及其供应商可能倾向于放慢应对网络威胁的投资。迄今为止&#xff0c;他们遇到的攻击仍然相对简单&#xff0c;危害性也不是特别大。 然而&#xff0c;对地下犯罪信息交换中的聊天记录的分析表明&#xff0c;这些碎片的存在是为了…

html5学习笔记22-JavaScript 简略学习

https://www.runoob.com/js/js-tutorial.html JavaScript 是 Web 的编程语言。与java无关。 案例&#xff1a;https://c.runoob.com/examples/ JavaScript 是一种轻量级的编程语言、可插入 HTML 页面的编程代码、脚本语言。 ECMA-262 是 JavaScript 标准的官方名称。 HTML 中的…

房地产小程序 | 小程序赋能,房地产业务数字化升级

随着科技的不断发展&#xff0c;房地产行业正逐渐向数字化转型。在这个过程中&#xff0c;房地产小程序成为了一种重要的工具&#xff0c;可以帮助房地产企业提供更好的购房体验、增加销售额&#xff0c;并实现管理的便捷化。 优点 便捷购房体验&#xff1a;房地产小程序为用户…

vite + react + typescript + uni-app + node 开发一个生态系统

简介 使用 vite react typescript uni-app node 来开发一个简易的生态系统案例&#xff0c;包含 APP&#xff0c;H5&#xff0c;微信小程序&#xff0c;控制台&#xff0c;服务端 开发 admin 技术栈&#xff1a;vite react typescript初始化控制台项目选择自定义预设…

快速傅里叶变化

引言 目标 傅里叶变化&#xff08;Fourier transform&#xff09;是一种信号处理技术&#xff0c;它可以将时间信号转换为频率信号&#xff0c;即将一组具有相同数量频率的正弦波叠加在一起&#xff0c;形成一组新的正弦波。如果我们把时间信号从频域转换到时域&#xff0c;那么…

手搭手入门MybaitsX

Mybatis-Plus介绍 为简化开发而生 MyBatis-Plus(opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis(opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 特性 无侵入&#xff1a;只做增强…

2022年全国研究生数学建模竞赛华为杯C题汽车制造涂装-总装缓存调序区调度优化问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 C题 汽车制造涂装-总装缓存调序区调度优化问题 原题再现&#xff1a; 背景介绍   汽车制造厂主要由焊装车间、涂装车间、总装车间构成&#xff0c;每个车间有不同的生产偏好&#xff0c;如&#xff1a;焊装车间由于车身夹具的限制偏向最…

【C语言】指针的“最后一站”【进阶版】

欢迎各位看官^_^ 目录 1、字符指针 2、指针数组 3、数组指针 3.1数组指针的定义 3.2数组指针的使用 4、数组指针和指针数组的区别 5、数组参数&#xff0c;指针参数 5.1数组参数定义 5.2指针参数定义 5.3一维数组传参 5.4二维数组传参 5.5一级指针传参 5.6二级指…

Matlab图像处理-彩色图像基础

光谱 在17世纪60年代&#xff0c;人们普遍认为白光是一种没有其他颜色的纯色光&#xff0c;而彩色光是有某种缘故发生变化的光。为了验证这个假设&#xff0c;牛顿让一束阳光通过一面三棱镜&#xff0c;光线在墙上被分解成了八种不同的颜色&#xff0c;即&#xff1a;红、橙、…