HDFS存储原理

news/2024/5/20 2:58:02 标签: hdfs, hadoop, 大数据

基本原理

Block 块: HDFS的最小储存单位,块大小统一,便于统一管理。
但存在Block块丢失的问题,一个文件中的任意一个块丢失都会导致文件不可用。因此提出了HDFS的备份机制。

备份: 将一个块复制多份,放在不同的服务器上。安全性大大提升。

属性设置

配置文件中的设置
在这里插入图片描述
上传时的设置
在这里插入图片描述
副本数检查
在这里插入图片描述
单个块大小设置
在这里插入图片描述

NameNode对Block的管理

NameNode对Block的管理通过两类文件实现

  1. edits文件:记录了HDFS的每一次操作,以及本次操作影响到的Block,为了避免超大的edits文件,因此此文件可能会有多个。
    在这里插入图片描述

  2. fsimage文件:全部的edits文件合并,合并为最终结果即为FSImage文件
    -在这里插入图片描述
    管理流程

  • 每次对HDFS的操作都会被edits记录下来
  • 当一个edits文件过大时,会再开启一个新的edits文件
  • 定期对edits文件进行合并,合并为FSImage。若FSImage不存在,那么创建一个,若存在则和之前的合并。
  • 重复上述操作

在这里插入图片描述
在这里插入图片描述
元数据的合并由SecondaryNameNode进行
SecondaryNameNode会通过http从NameNode拉取数据(edits和fsimage),若不启动SecondaryNameNode会造成检索效率的下降,文件系统的卡顿。

HDFS数据读写流程

写入流程在这里插入图片描述

在这里插入图片描述

读取流程

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


http://www.niftyadmin.cn/n/199931.html

相关文章

CK-UR05-US工业级超高频RFID标签编码器开发手册1

一、单向通讯应用开发 1、单向通讯应发用开发 应用于连续和触发自动工作模式下,此时设备强制会转换成仿真键盘输出模式,上位机只需要接受读写器传输来的标签ID号,不需要向读写器发送命令。 2、USB仿真键盘输出协议 USB仿真键盘单项输出&am…

大数据 Apache Hive SQL基础(HQL 入门篇)

Hive SQL 几乎是每一位互联网分析师的必备技能,相信每一位面试过大厂的童鞋都有被面试官问到 Hive 优化问题的经历。所以掌握扎实的 HQL 基础尤为重要,既能帮分析师在日常工作中“如鱼得水”提高效率,也能在跳槽时获得一份更好的工作 offer。…

文心一言 VS chatgpt (5)-- 算法导论2.2 3~4题

三、再次考虑线性查找问题(参见练习 2.1-3)。假定要查找的元素等可能地为数组中的任意元素,平均需要检查输入序列的多少元素?最坏情况又如何呢?用0记号给出线性查找的平均情况和最坏情况运行时间。证明你的答案。 文心一言: chatgpt: 假设…

MATLAB算法实战应用案例精讲-【智能优化算法】 基于帕累托包络的选择算法II(PESA-II)(附MATLAB代码实现)

目录 前言 知识储备 数据包络分析(DEA) 特点 名词解释 类型介绍 案例简介 软件操作(SPSSPRO)

一些常见网络安全术语

1、黑帽 为非法目的进行黑客攻击的人,通常是为了经济利益。他们进入安全网络以销毁,赎回,修改或窃取数据,或使网络无法用于授权用户。这个名字来源于这样一个事实:老式的黑白西部电影中的恶棍很容易被电影观众识别&…

matlab流场可视化后处理

1流体中标量的可视化 流体力学中常见的标量为位置、速度绝对值、压强等。 1.1 云图 常用的云图绘制有pcolor、image、imagesc、imshow、contourf等函数。 这里利用matlab自带的wind数据作为演示案例,显示二维云图的速度场。 close all load wind x2x(:,:,5);y2y…

OCR识别系列之一-----文档字符识别

假如输入系统的图像是一页文本,那么识别时的第一件事情是判断页面上的 文本朝向,因为我们得到的这页文档往往都不是很完美的,很可能带有倾斜或者污渍,那么我们要做的第一件事就是进行 图像预处理,做角度矫正和去噪。然…

fastjson 与 java 交互

1. Fastjson 如何将 jsonObject 转换成 Map<Integer,Long>类型 import com.alibaba.fastjson.JSONObject; import java.util.Map;public class Example {public static void main(String[] args) {String jsonStr "{\"1\":100,\"2\":200,\&qu…