HBASE学习(一)
1.HBASE基础架构,
1.1 参考:
HBase集群架构与读写优化:理解核心机制与性能提升-CSDN博客
1.2问题:
1.FLUSH对hbase的影响
2. HLog和memstore的区别
hlog中存储的是操作记录,比如写、删除。而memstor中存储的是写入的表数据
2.HBASE与HDFS的关系
HBASE的主和从分别称为HMaster和RegionServer。其数据结构和表(表中又分为行和列)。支持实时读写。(如何实现的??)
HDFS的主和从分别称为NameNode和DataNode。其数据结构为hfile文件,无表的概念。不支持实时读写,用于批处理和高吞吐量的读写
- HDFS 是 Hadoop 的分布式存储系统,提供高吞吐量的数据访问。
- 特点:
- 数据以文件块(block)的形式分布在多个 DataNode 上。
- 支持数据冗余和容错,默认情况下每个文件块有 3 个副本(所以是HDFS机制实现了数据备份)。
- 主从架构:NameNode 负责元数据管理,DataNode 负责实际的数据存储。
- 与 HBase 的关系:
- HBase 依赖 HDFS 存储数据和元数据(如表的 Region 数据、WAL 日志等)。
- HDFS 提供了可靠的存储基础,但不支持实时随机读写,这是 HBase 的补充功能。
- HBase 是一个基于 HDFS 的分布式 NoSQL 数据库,专为海量数据的实时随机读写设计。
- 特点:
- 数据按行存储,基于键值对。
- 支持超大规模表(行数和列数可以达到数十亿级)。
- 提供高性能的随机读写操作。
- 依赖组件:
- HDFS:用于持久化存储表数据和 WAL(Write-Ahead Log)日志。
- ZooKeeper:用于集群管理、故障恢复、元数据存储和分布式协调。
- HBase 的补充功能:
- 提供高性能的随机读写,而 HDFS 主要用于批处理和高吞吐量的读写。
2. NameNode 和 HMaster是否等价
NameNode 和 HMaster 不等价,它们是分布式系统中两个独立的组件:
- NameNode 是 HDFS 的管理节点,关注的是文件存储。
- HMaster 是 HBase 的管理节点,关注的是表和 RegionServer 的管理
对比NameNode 和 HMaster
特性 | NameNode | HMaster |
---|---|---|
系统所属 | HDFS | HBase |
作用 | 管理文件系统元数据和块分布 | 管理 HBase 表和 RegionServer |
元数据存储 | 存储在内存中(文件元数据) | 部分存储在 HDFS 和 ZooKeeper |
与数据存储关系 | 指挥 DataNode 存储文件块 | 指挥 RegionServer 存储 HBase 数据 |
高可用性 | 支持 Active/Standby NameNode | 支持 Active/Standby HMaster |
3.hdfs不支持实时读写,hbase如何做到可以支持实时读写
读写流程的优化
- 写流程(先写入内存,存储到一定量后才写入hfile):
- 数据写入 WAL(顺序写 HDFS)。
- 数据写入 MemStore(内存操作,低延迟)。
- 数据刷入 HDFS(按照rowkey顺序写 HFile,提升了使得后续的读速度)。
- 读流程:
- 查询数据时,优先从 MemStore 或 BlockCache(经常读取的数据会存储在BlockCache中) 中读取。
- 如果数据不在内存中,则从 HFile(HDFS)中加载。
- 查询结果可以缓存到 BlockCache 中,加速后续访问。
总结原因就是:1.添加了内存作为中间缓冲区;2.数据按照rowkey顺序写入hfile
Zookeeper和Hbase的关系
1.zookeeper在HBASE 中的作用时什么?
- 记录HBase 集群的运行状态:
- 活跃的 HMaster 和备份 HMaster 的状态。
- 活跃的 RegionServer 列表。
- 记录表和 Region 的元数据的位置:
hbase:meta
表的位置(hbase:meta
是存储表和 Region 元数据的特殊表)。- 某些分布式锁和协调信息,例如 Region 的迁移状态。
- 故障恢复和选主:
- 在 HMaster 故障时,ZooKeeper 会负责进行新主节点的选举。
2.读写数据时,为什么要从zookeeper中获取hbase的元数据,hbase的元数据时存储在zookeeper中吗?
HBASE的元数据存储的HDFS中,但是元数据在HDFS中的存储位置却存储在zookeeper中,所以想访问元数据时,首先需要访问zookeeper。
同时,HMaster 会将表和 Region 的元数据加载到内存中以加速操作,但这些信息的持久化存储在 HDFS 和 ZooKeeper 中。
HBASE存储
1.hbase中列族对存储有什么影响
每个列族可以独立设置存储参数(如压缩、版本控制、TTL 等),这会影响存储的大小和性能。
HBase 为每个列族分配独立的块缓存(block cache)
一个region上,同一个列族的数据存储在一个或多个 HFile 中。但是同一个列的数据只存储在一个文件中。同一列族的数据存储在同一个磁盘上
hfile中每条数据的键(RowKey+Column Family+Column+Timestamp)和对应的值存储在同一个文件中。
2.hbase内部是如何实现备份的,即数据被损坏后,如何复原
hbase数据分为两部分:存储到内存中的和固化到hfile文件中的。
2.1)RegionServer崩溃,则内存中数据会丢失,但是WAL(Write-Ahead Log)文件中会存储所有内存中的数据,所以Master将崩溃的 RegionServer 的 WAL 日志分配给其他 RegionServer,通过重放 WAL 恢复数据到内存即可。
2.2)hfile文件损坏,由于每个数据块(Block)在 HDFS 上默认会存储 3 个副本,所以只要有未损坏的hfile文件即可。HDFS 会自动从副本中修复损坏的文件。如果副本全部丢失,可使用快照或备份文件恢复(需人为定期备份)
2.3)如果整个集群毁坏(需要人为介入)
- 从跨集群复制的备份集群恢复。
- 从定期备份的快照或 HDFS 数据恢复。
相关文章:
HBASE学习(一)
1.HBASE基础架构, 1.1 参考: HBase集群架构与读写优化:理解核心机制与性能提升-CSDN博客 1.2问题: 1.FLUSH对hbase的影响 2. HLog和memstore的区别 hlog中存储的是操作记录,比如写、删除。而memstor中存储的是写入…...

element select 绑定一个对象{}
背景: select组件的使用,适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象,一个el-option对应的对象。 <el-select v-model"state.form.modelA" …...

Sprint Boot教程之五十八:动态启动/停止 Kafka 监听器
Spring Boot – 动态启动/停止 Kafka 监听器 当 Spring Boot 应用程序启动时,Kafka Listener 的默认行为是开始监听某个主题。但是,有些情况下我们不想在应用程序启动后立即启动它。 要动态启动或停止 Kafka Listener,我们需要三种主要方法…...
C:JSON-C简介
介绍 JSON-C是一个用于处理JSON格式数据的C语言库,提供了一系列操作JSON数据的函数。 一、json参数类型 typedef enum json_type { json_type_null, json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_ar…...

业务幂等性技术架构体系之消息幂等深入剖析
在系统中当使用消息队列时,无论做哪种技术选型,有很多问题是无论如何也不能忽视的,如:消息必达、消息幂等等。本文以典型的RabbitMQ为例,讲解如何保证消息幂等的可实施解决方案,其他MQ选型均可参考。 一、…...

【Go】Go Gin框架初识(一)
1. 什么是Gin框架 Gin框架:是一个由 Golang 语言开发的 web 框架,能够极大提高开发 web 应用的效率! 1.1 什么是web框架 web框架体系图(前后端不分离)如下图所示: 从上图中我们可以发现一个Web框架最重要…...
2024年合肥市科普日小学组市赛第一题题解
9304:数字加密(encrypt)(1) 【问题描述】 在信息科技课堂上,小肥正在思考“数字加密”实验项目。项目需要加密n个正整数,对每一个正整数x加密的规则是,将x的每一位数字都替换为x的最大数字。例如࿰…...

【MySQL实战】mysql_exporter+Prometheus+Grafana
要在Prometheus和Grafana中监控MySQL数据库,如下图: 可以使用mysql_exporter。 以下是一些步骤来设置和配置这个监控环境: 1. 安装和配置Prometheus: - 下载和安装Prometheus。 - 在prometheus.yml中配置MySQL通过添加以下内…...
Wireshark 使用教程:网络分析从入门到精通
一、引言 在网络技术的广阔领域中,网络协议分析是一项至关重要的技能。Wireshark 作为一款开源且功能强大的网络协议分析工具,被广泛应用于网络故障排查、网络安全检测以及网络协议研究等诸多方面。本文将深入且详细地介绍 Wireshark 的使用方法&#x…...

如何在前端给视频进行去除绿幕并替换背景?-----Vue3!!
最近在做这个这项目奇店桶装水小程序V1.3.9安装包骑手端V2.0.1小程序前端 最近,我在进行前端开发时,遇到了一个难题“如何给前端的视频进行去除绿幕并替换背景”。这是一个“数字人项目”所需,我一直在冥思苦想。终于有了一个解决方法…...
使用中间件自动化部署java应用
为了实现你在 IntelliJ IDEA 中打包项目并通过工具推送到两个 Docker 服务器(172.168.0.1 和 172.168.0.12),并在推送后自动或手动重启容器,我们可以按照以下步骤进行操作: 在 IntelliJ IDEA 中配置 Maven 或 Gradle 打…...
pytorch张量分块投影示例代码
张量的投影操作 背景 张量投影 是深度学习中常见的操作,将输入张量通过线性变换映射到另一个空间。例如: Y=W⋅X+b 其中: X: 输入张量(形状可能为 (B,M,K),即批量维度、序列维度、特征维度)。W: 权重矩阵((K,N),将 K 维投影到 N 维)。b: 偏置向量(可选,(N,))。Y:…...

Visual Studio 同一解决方案 同时运行 多个项目
方案一 方案二...
VMware中Ubuntu如何连接网络?安排!
一、设置NAT模式 1、关闭Ubuntu虚拟机: 确保Ubuntu已经完全关机,而不是挂起或休眠状态。 2、编辑虚拟网络设置: 在VMware主界面点击“编辑”菜单,选择“虚拟网络编辑器”。 如果需要,选择VMnet8 (NAT模式)并点击“更改…...

使用 Charles 调试 Flutter 应用中的 Dio 网络请求
为了成功使用 Charles 抓取并调试 Flutter 应用程序通过 Dio 发起的网络请求,需遵循特定配置步骤来确保应用程序能够识别 Charles 的 SSL 证书,并正确设置代理服务器。 配置 Charles 以支持 HTTPS 请求捕获 Charles 默认会拦截 HTTP 流量;…...
CMD批处理命令入门(6)——常用的特殊字符
CMD批处理命令入门(6)——特殊字符 本章内容主要学习要点:重定向符 >、>>命令管道符 |组合命令 &、&&、||转义字符 ^变量引导符 %界定符 "" 本章内容主要学习要点: >、>>重定向符| 命令…...

【跟着官网学技术系列之MySQL】第7天之创建和使用数据库1
前言 在当今信息爆炸的时代,拥有信息检索的能力很重要。 作为一名软件工程师,遇到问题,你会怎么办?带着问题去搜索引擎寻找答案?亦或是去技术官网,技术社区去寻找? 根据个人经验,一…...
next-auth v5 结合 Prisma 实现登录与会话管理
1. 安装依赖 npm install next-auth prisma prisma/client2. 配置 Prisma 模型 在 prisma/schema.prisma 文件中定义 User 和 Account 模型(next-auth v5 推荐使用自定义模型)。 model User {id String id default(uuid())email …...

WPS excel使用宏编辑器合并 Sheet工作表
使用excel自带的工具合并Sheet表,我们会发现需要开通WPS会员才能使用合并功能; 那么WPS excel如何使用宏编辑器进行合并 Sheet表呢? 1、首先我们要看excel后缀是 .xlsx 还是 .xls ;如果是.xlsx 那么 我们需要修改为 .xls 注…...

(即插即用模块-Attention部分) 四十四、(ICIP 2022) HWA 半小波注意力
文章目录 1、Half Wavelet Attention2、代码实现 paper:HALFWAVELET ATTENTION ON M-NET FOR LOW-LIGHT IMAGE ENHANCEMENT Code:https://github.com/FanChiMao/HWMNet 1、Half Wavelet Attention 传统的图像增强方法主要关注图像在空间域的特征信息&am…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...