【大数据】HDFS

news2024/11/27 12:56:42

文章目录

    • @[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.coloradmin.cn/o/1668828.html

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

相关文章

红黑树的理解和简单实现

目录 1. 红黑树的概念和性质 2. 红黑树的插入 2.1. 情况一:新增节点的父亲为空 2.2. 情况二:新增节点的父亲非空且为黑色节点 2.3. 情况三:当父亲为红节点,叔叔存在且为红 2.3.1. 当祖父为根节点的时候 2.3.2. 当祖父不是根…

揭秘高效引流获客的艺术:转化技巧大公开

在数字化营销的海洋中,每个企业都如同一艘努力航行的船,而流量便是推动船只前行的风帆。如何有效吸引并获取潜在客户,即所谓的“引流获客”,已成为企业市场营销策略中不可或缺的一环。本文将详细探讨几种实用且高效的引流获客技巧…

【RAG 论文】AAR:训练一个LLM喜欢的检索器来做RAG

论文:Augmentation-Adapted Retriever Improves Generalization of Language Models as Generic Plug-In ⭐⭐⭐ ACL 2023, Tsinghua & Microsoft,arXiv:2305.17331 论文速读 以往 RAG 的工作通常联合微调 retriever 和 LLM 导致紧密耦合&#xff0…

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…

公有云Linux模拟UDP端口并抓包

目录 写在前面操作步骤服务端开启UDP端口并监听客户端连接Wireshark抓包查看 写在前面 关于具体的操作,请参考我的上一篇文章 公有云Linux模拟TCP三次挥手与四次握手(Wireshark抓包验证版) 在本文,仅介绍与上一篇不同的地方。 操…

Matlab-粒子群优化算法实现

文章目录 一、粒子群优化算法二、相关概念和流程图三、例题实现结果 一、粒子群优化算法 粒子群优化算法起源于鸟类觅食的经验,也就是一群鸟在一个大空间内随机寻找食物,目标是找到食物最多的地方。以下是几个条件: (1) 所有的鸟都会共享自己的位置以及…

泰达克仿钻点水晶饰品包装印刷防滑UV胶特性及应用场景

仿钻点UV滴胶是一种特殊的胶水 常用于模拟钻石的效果 它是一种透明的胶水 具有高光泽度和折射率 可以在物体表面形成类似钻石的亮闪效果 仿钻点UV滴胶通常由紫外线固化胶组成 需要通过紫外线照射来固化和硬化 它具有以下特点: 1. 透明度:仿钻点UV滴胶具有…

B端弹窗设计指南,3000字讲清楚,内附大量案例。

B端系统弹窗是指在企业级(Business to Business)系统中,弹出的窗口或对话框,用于向用户展示信息、提供操作选项或者收集用户输入。 一、B端系统弹窗的作用 作用如下: 提示和通知:弹窗可以用于向用户展示重…

STM32F407-驱动SHT41采集温湿度

STM32F407-驱动SHT41采集温湿度 SHT41 SHT41通过I2C方式进行驱动 从机地址: 0x44 获取数据方式 1)先发送I2C写,写入特定指令 2)延时一段时间,等待SHT41处理 3)再进行I2C读,读数据即可 一些…

打开远程连接的命令是什么?

远程连接是一种能够在不同设备之间建立连接并共享信息的技术。在许多情况下,我们需要通过远程连接来访问其他设备或处理一些远程任务。本文将介绍一些常用的打开远程连接的命令。 使用SSH连接远程设备 SSH(Secure Shell)是一种安全的网络协议…

1-02-02:虚拟化与容器化Docker环境搭建

1.02.02 虚拟化与容器化Docker环境搭建 一. 虚拟化与容器化技术简介1. 虚拟机环境2. docker环境 二. Docker 架构与隔离机制2.1 Docker 架构2.2 Docker 隔离机制2.3 资源限制2.4 Docker应用场景 三. 实战:Docker在Centos7安装与镜像加速 ❤❤❤3.1 docker安装3.2 设置镜像加速 …

NIOS II实现LED流水灯以及串口输出(DE2-115开发板)

NIOS II实现LED流水灯以及串口输出(DE2-115开发板) 前言什么是Qsys?什么是NIOSII?注意事项1、管脚配置2、配置NIOSII时的连接3、注意中断配置好后是这样的4、注意名称的配置5、设置双功能引脚 NIOS II的报错代码以及效果演示流水灯输出到电脑串口助手 …

人工智能轨道交通行业周刊-第79期(2024.4.22-5.12)

本期关键词:无人机巡检、车机联控、减速顶、Agent、GraphRAG、RAGFlow 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界铁路那…

【智能算法应用】遗传粒子群算法(GA-PSO)求解选址问题

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】粒子群算法(PSO)原理及实现 经典PSO算法用于连续空间优化问题,选址问题作为组合优化问题,需要在离散空间中求解。因此,考虑遗传算…

阮怀俊谈如何盘活和挖掘乡村文旅资源

近年来,浙江凭借高水平建设新时代美丽乡村,各项工作持续走在全国前列,最近,在国家发展改革委关于恢复和扩大消费措施的通知中也提到: “推广浙江‘千万工程’经验,建设宜居宜业和美乡村。实施文化产业赋能乡…

Libcity 笔记:自定义模型

在/libcity/model/trajectory_loc_prediction/,我们复制一份Deepmove.py,得到DM_tst.py,我们不改变其中的机制,只动class name 然后修改相同目录下的__init__.py: 修改task_config文件: 在config/model/tra…

带头单链表 C++实现

节点定义 带头单链表&#xff1a;我们只需要一个结点指针指向整个链表的第一个节点&#xff0c;这样我们就可以通过next指针访问整个链表内的所有节点 template<class T> struct ListNode {T _val;ListNode* _next;ListNode(const T &val):_val(val),_next(nullptr){…

Unity图形图表XChart插件使用

最近做了一款数字孪生项目,其中涉及到了图形图表的应用,网上找了一下,找到了XChart插件,使用起来蛮方便的,不过还有待继续研究,很多细节性的知识点需要进行学习探索。以下是项目中的应用。 官方应用: ![](https://img-blog.csdnimg.cn/direct/ab9de8e84e7b4be4a50ea…

抽丝剥茧:详述一次DevServer Proxy配置无效问题的细致排查过程

事情的起因是这样的&#xff0c;在一个已上线的项目中&#xff0c;其中一个包含登录和获取菜单的接口因响应时间较长&#xff0c;后端让我尝试未经服务转发的另一域名下的新接口&#xff0c;旧接口允许跨域请求&#xff0c;但新接口不允许本地访问&#xff08;只允许发布测试/生…

【058】基于SpringBoot+Vue校园失物招领系统的设计与实现

系统介绍 基于SpringBootVue校园失物招领系统主要通过使用Java语言编码设计系统功能&#xff0c;MySQL数据库管理数据&#xff0c;AJAX技术设计简洁的、友好的网址页面&#xff0c;然后在IDEA开发平台中&#xff0c;编写相关的Java代码文件&#xff0c;接着通过连接语言完成与…