【大数据】HDFS

文章目录

    • @[toc]
      • HDFS 1.0
        • NameNode
          • 维护文件系统命名空间
          • 存储元数据
          • 解决NameNode单点问题
        • SecondaryNameNode
        • 机架感知
        • 数据完整性校验
          • 校验和
          • 数据块检测程序DataBlockScanner
        • HDFS写流程
        • HDFS读流程
        • HDFS与MapReduce本地模式
        • Block大小
      • HDFS 2.0
        • NameNode HA
        • NameNode Federation
        • HDFS Snapshot
        • 缓存
        • ACL
        • Block大小

因上努力

个人主页:丷从心·

系列专栏:大数据

果上随缘


HDFS 1.0

NameNode
维护文件系统命名空间
存储元数据
  • 元数据存储在内存中
  • 维护文件名 → B l o c k \rightarrow Block Block B l o c k → D a t a N o d e Block \rightarrow DataNode BlockDataNode的映射关系
  • 持久化元数据的文件是 f s i m a g e fsimage fsimage
  • 所有对元数据的操作都保存在内存中并被持久化到文件 e d i t l o g s edit \ logs edit logs
  • e d i t l o g s edit \ logs edit logs文件和 f s i m a g e fsimage fsimage文件会被 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode周期性地合并
解决NameNode单点问题
  • H a d o o p Hadoop Hadoop元数据写入到本地文件系统的同时再实时同步到一个远程挂载的网络文件系统( N F S NFS NFS)中
  • N a m e N o d e NameNode NameNode发生故障时 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode会通过自己合并的命名空间镜像 f s i m a g e fsimage fsimage副本来恢复 N a m e N o d e NameNode NameNode,但是 S e c o n d a r y N a m e N o d e SecondaryNameNode SecondaryNameNode保存的状态总是滞后于 N a m e N o d e NameNode NameNode,难免会丢失部分数据
SecondaryNameNode

1

  • N a m e N o d e NameNode NameNode在下次重启时会使用新的 f s i m a g e fsimage fsimage文件,从而减少重启时间
机架感知
  • 机架感知是 B l o c k Block Block副本放置策略
  • 第一个副本放在客户端节点,如果客户端是集群外的一台机器,就随机选择节点,但是会避免挑选太满或者太忙的节点
  • 第二个副本放在不同机架的节点
  • 第三个副本放在与第二个副本同机架但是不同节点上
数据完整性校验
校验和
  • 在第一次进入系统时计算数据的校验和,在通道传输后,如果新生成的校验和不完全匹配原始的校验和,那么数据就会被认为是损坏的
数据块检测程序DataBlockScanner
  • D a t a N o d e DataNode DataNode节点上开启一个后台线程,来定期验证存储在它上的所有块,防止物理介质出现损减而造成的数据损坏
  • 一旦发现数据块损坏, D a t a N o d e DataNode DataNode会接收到 N a m e N o d e NameNode NameNode发送的 B l o c k Block Block修复指令
HDFS写流程

2

  • F S D a t a O u t p u t S t r e a m FSData \ OutputStream FSData OutputStream将原始数据切分成数据块并写入一个队列
  • 数据弱一致性:第一个副本写入后就立刻返回 A C K ACK ACK
HDFS读流程

3

HDFS与MapReduce本地模式
  • 数据不移动,代码逻辑移动
Block大小
  • H D F S 1.0 HDFS \ 1.0 HDFS 1.0默认 B l o c k Block Block大小为 64 M B 64 MB 64MB

HDFS 2.0

NameNode HA

4

  • 运行 A c t i v e N a m e N o d e Active \ NameNode Active NameNode S t a n d b y N a m e N o d e Standby \ NameNode Standby NameNode的机器需要相同的硬件配置
  • J o u r n a l N o d e JournalNode JournalNode本质是共享的网络文件系统,由奇数个节点组成,用于存储 e d i t l o g s edit \ logs edit logs
  • F a i l o v e r C o n t r o l l e r FailoverController FailoverController本质是 Z o o K e e p e r ZooKeeper ZooKeeper的客户端,监控 N a m e N o d e NameNode NameNode状态信息,实现故障转移
NameNode Federation

5

  • N a m e N o d e F e d e r a t i o n NameNode \ Federation NameNode Federation本质是命名空间的分离,解决了 N a m e N o d e NameNode NameNode内存资源不足的问题
  • 一个 N a m e s p a c e Namespace Namespace对应一个 B l o c k P o o l Block \ Pool Block Pool,即一个 N a m e s p a c e Namespace Namespace下的所有 B l o c k Block Block的集合
  • 通过视图文件系统 V i e w F S ViewFS ViewFS管理全局 N a m e s p a c e Namespace Namespace
HDFS Snapshot
  • S n a p s h o t Snapshot Snapshot常用来作为数据备份
  • S n a p s h o t Snapshot Snapshot只记录了文件系统元数据信息,并没有进行数据的拷贝
缓存
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0支持集中式缓存,可以明确指定要缓存数据
  • 支持对非递归目录和文件的缓存
ACL
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0支持 A C L ACL ACL管理
Block大小
  • H D F S 2.0 HDFS \ 2.0 HDFS 2.0默认 B l o c k Block Block大小为 128 M B 128 MB 128MB

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

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

相关文章

windows环境下 postgresql v12 绿色版+postgis 3.4.1版本配置,空间数据库迁移

windows环境下 postgresql v12 绿色版+postgis 3.4.1版本配置,空间数据库迁移 一、软件环境 操作系统:windows 11 pg免安装版数据库:postgresql-12.17-1-windows-x64-binaries.zip 下载地址:https://get.enterprisedb.com/postgresql/postgresql-12.18-1-windows-x64-bina…

ISIS学习二——与OSPF相比的ISIS报文以及路由计算

目录 一.ISIS支持的网络类型 1.OSPF支持 2.ISIS支持 二.ISIS最优路径的选取 (1).ISIS开销值设置 1.全局开销 2.接口开销 3.根据带宽设置开销 (2).ISIS的次优路径 三.ISIS报文格式 1.ISIS专用报头——TLV 2.ISIS通用头…

JavaScript APIs

控制网页元素交互等各种网页交互效果。 一、Web API基本认知 声明数组和变量优先使用const 使用let声明变量的情况: 1、如果基本数据类型的值或者引用类型的地址发生变化的时候,需要用let 2、比如 一个变量进行加减运算,比如 for循环中的…

FreeRTOS的列表和列表项 list.c文件详解

列表、列表项的定义以及初始化 列表相当于链表,列表项相当于节点,FreeRTOS中的列表相当于一个双向环形链表。 列表使用指针指向列表项。一个列表(list)下面可能有很多个列表项(list item),每个…

第十三篇:智慧之网:深度探索关系型数据库的数学奥秘与实战技艺

智慧之网:深度探索关系型数据库的数学奥秘与实战技艺 1. 引言 1.1 数据时代的基石 在数字化的浪潮中,数据已成为新时代的石油,而关系型数据库则是这座数据矿藏的精炼厂。自E.F. Codd在1970年提出关系模型以来,关系型数据库以其坚…

LeetCode - 0088 合并两个有序数组

题目地址:https://leetcode.cn/problems/merge-sorted-array/description/ 引言:话接上回,由于上次面试官着急下班,面试不得不提前终止,这不,他又找我去面试了 面试官:你好,小伙子&a…

【二叉树】Leetcode 二叉树的锯齿形层序遍历

题目讲解 103. 二叉树的锯齿形层序遍历 算法讲解 这道题其实是和N叉树层序遍历是一样的,只不过是要求每一次的遍历的方向不一样;注意:这一次的使用的队列不能够是queue了,因为需要从后往前遍历容器,所以就可以使用v…

vs code中如何使用git

由于本地代码有了一些储备,所以想通过网址托管形式,之前一直使用了github,但是鉴于一直被墙,无法登录账号,所以选择了国内的gitee来作为托管网站。 gitee的网址:Gitee - 基于 Git 的代码托管和研发协作平台…

事件高级部分

一,注册事件 即给元素添加事件 1.传统注册方式 2.方法监听注册方式 事件类型:字符串形式,不用带on 可以给一个元素添加多个程序 二.删除事件 1.方式 参数见上文 三.DOM事件流 事件的传播过程叫做事件流 js代码只能获取一个阶段&#xf…

JAVA毕业设计138—基于Java+Springboot+Vue的医院预约挂号小程序(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的医院预约挂号小程序(源代码数据库)138 一、系统介绍 本系统前后端分离带小程序和后台 小程序(用户端),后台管理系统&a…

判断上三角矩阵 分数 15

题目展示&#xff1a; 代码展示&#xff1a; 点这里&#xff0c;输入题目名称即可检索更多题目答案 ​#include<stdio.h>int main() {//T-tint t 0;scanf("%d",&t);while(t--)//循环t次&#xff0c;处理t个矩阵{int n 0;scanf("%d",&n);…

【机器学习】集成学习在信用评分领域实例

集成学习在信用评分领域的应用与实践 一、引言二、集成学习的概念与原理三、集成学习在信用评分中的应用实例四、总结与展望 一、引言 在当今金融数字化快速发展的时代&#xff0c;信用评分成为银行、金融机构等评估个人或企业信用风险的重要工具。然而&#xff0c;单一的信用评…

QuickBooks 2024 for Mac 激活版:智慧管理,财务无忧

想要轻松掌控财务&#xff0c;实现高效管理吗&#xff1f;QuickBooks 2024 for Mac&#xff0c;您的智慧财务管理专家&#xff0c;为您带来前所未有的便利和体验。无论是账务、工资还是销售和库存&#xff0c;它都能一手搞定。直观易用的界面&#xff0c;让您轻松上手&#xff…

5.10.4 Vision Transformer的条件位置编码(CPE)

用于视觉 Transformer 的条件位置编码&#xff08;CPE&#xff09;方案与之前预定义且独立于输入标记的固定或可学习位置编码不同&#xff0c;CPE 是动态生成的&#xff0c;并以输入标记的局部邻域为条件。 CPE 可以轻松泛化到比模型在训练期间见过的输入序列更长的输入序列。…

YOLOv8+CLIP实现图文特征匹配

本文通过结合YOLOv8s的高效物体检测能力与CLIP的先进图像-文本匹配技术&#xff0c;展示了深度学习在处理和分析复杂多模态数据中的潜力。这种技术的应用不仅限于学术研究&#xff0c;还能广泛应用于工业、商业和日常技术产品中&#xff0c;以实现更智能的人机交互和信息处理。…

【全开源】排队叫号系统基于FastAdmin+GatewayWorker(源码搭建/上线/运营/售后/维护更新)

一款基于FastAdminGatewayWorker开发的多项目多场景排队叫号系统&#xff0c;支持大屏幕投屏&#xff0c;语音播报叫号&#xff0c;可用于餐厅排队取餐、美甲店排队取号、排队领取、排队就诊、排队办理业务等诸多场景&#xff0c;助你轻松应对各种排队取号叫号场景。 功能简介…

Qt Tab键切换焦点顺序:setTabOrder()

使用这个方法setTabOrder()&#xff0c;设置使得焦点的顺序从前到后依次是&#xff1a; ui->lineEdit》 ui->lineEdit_2》ui->lineEdit_3 》ui->lineEdit_4 焦点先在ui->lineEdit上&#xff0c;当按下Tab键时&#xff0c;焦点跑到ui->lineEdit_2上。。。按…

mysql设置远程访问权限,允许其他IP访问

文章目录 更改mysql配置文件登录mysql 更改mysql配置文件 查找.ini或者.cnf文件 更改bind-address为0.0.0.0 [mysqld] character-set-serverutf8mb4 bind-address0.0.0.0 default-storage-engineINNODB [mysql] default-character-setutf8mb4 [client] default-character-s…