HDFS [MSST‘10] 论文阅读笔记

原论文:The Hadoop Distributed File System (MSST’10)

HDFS关键技术要点概览

  1. 设计目标:HDFS旨在可靠地存储大型数据集,并以高带宽流式传输这些数据集到用户应用程序。它通过在大量服务器上分布存储和计算资源,使得资源可以随着需求的增长而扩展,同时保持经济高效。
  2. 架构组成:HDFS是Hadoop项目的一部分,包括了分布式文件系统、MapReduce计算框架、HBase列式存储系统、Pig数据流语言、Hive数据仓库基础设施、ZooKeeper分布式协调服务等多个组件。
  3. 存储和元数据分离:HDFS将文件系统元数据和应用数据分开存储。元数据存储在专用的NameNode服务器上,而应用数据存储在DataNode服务器上。
  4. 数据复制:HDFS不像传统的文件系统使用RAID等数据保护机制,而是通过在多个DataNode上复制文件内容来确保数据的可靠性。这种策略不仅保证了数据的持久性,还提高了数据传输带宽,并为计算任务提供了更多的机会来靠近所需数据。
  5. NameNode和DataNode:NameNode维护文件系统的namespace tree和block到DataNode的映射关系。DataNode则存储实际的数据块,并与NameNode通信以报告其健康状况和存储状态。
  6. 客户端操作:HDFS客户端提供了一系列文件系统操作,如读写文件、创建和删除目录等。客户端与NameNode交互以获取文件块的位置信息,然后直接与DataNode通信来读取或写入数据。
  7. 容错和数据完整性:HDFS通过复制数据块来提高容错能力。如果检测到数据块损坏,HDFS会从其他DataNode获取有效副本。此外,HDFS还提供了块扫描器来定期检查数据块的完整性。
  8. 平衡器(Balancer):为了确保集群中数据的均匀分布,HDFS提供了一个平衡器工具,它可以将数据从一个DataNode复制到另一个DataNode,以平衡集群中的磁盘空间使用。
  9. 升级和快照:HDFS支持在软件升级期间创建文件系统快照,以便在升级导致数据损坏时可以回滚到升级前的状态。
  10. 性能基准测试:论文提供了HDFS在不同操作(如读取、写入、追加)下的性能基准测试结果,以及在生产环境中的实际性能表现。
  11. 未来工作:论文讨论了HDFS未来的发展方向,包括提高NameNode的可扩展性、实现自动化故障转移、支持多个namespace以及改进集群间的协作。

HDFS原论文阅读

Introduction

  • Hadoop提供了一个分布式文件系统和一个基于MapReduce实现的对超大数据集的分析和转换的框架。

  • Hadoop的重要特点:数据的分割、横跨成千上万个主机的计算、在接近数据的地方并行执行应用程序的计算。

  • Hadoop集群通过简单地增加服务器来扩展计算容量、存储容量和IO带宽。

  • Hadoop 项目的组成元件

    • 在这里插入图片描述
  • Hadoop将元数据存储在NameNode上,将应用程序数据存储在DataNode上,所有服务器通过TCP-based协议连接和通信。

  • 和GFS类似,Hadoop通过存储多个副本在DataNodes上来实现数据的可靠性。

  • 一个文件通过一个哈希函数将名称映射到特定的MDS(namespace服务器)。

Architecture

NameNodes

  • HDFS namespace是一个文件和目录的层级结构。在NameNode中,文件和目录是通过inodes来呈现的,内容包括属性值(如允许的权限)、修改和访问时间、namespace和磁盘空间配额等。
  • 文件内容被分割成(默认为128MB大小的)块,然后每个块独立地在其他DataNodes上有多个副本(一般为三副本)。
  • Namenode保存着namespace tree以及blocks到DataNode的映射表(文件数据的物理位置)。
  • 想要读取文件的 HDFS clients首先会联系 NameNode 以获取组成文件的数据块位置,然后从最靠近client的 DataNode 读取块内容。在写入数据时,clients会要求 NameNode 指定由三个DataNodes来管理数据块副本。然后,clients以流水线方式向DataNodes写入数据。
  • HDFS将整个namespace存储在RAM中。命名系统元数据image由inode的数据和属于每个文件的block list组成,存储在本地主机本地文件系统中的image持久记录称为checkpoint,NameNode 还会在本地主机的本地文件系统中存储名为jo

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24年权威数学建模报名通知汇总(含妈妈杯、国赛、美赛、电工杯、数维杯、五一数模、深圳杯......)

1、MathorCup比赛 报名时间:2024年4月11日中午12点(周四) 比赛开始时间:2024年4月12日上午8时(周五) 比赛结束时间:2024年4月16日上午9时(周二) 报名费用&#xff1a…

HarmonyOS 开发-Worker子线程中解压文件

介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作,解压成功后将解压路径返回主线程,获取解压文件列表。 效果图预览 使用说明 点击解压按钮,解压test.zip文件,显…

基于springboot实现医院管理系统项目【项目源码+论文说明】

基于springboot实现医院管理系统演示 摘要 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求,创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系…

RabbitMQ如何保证消息的幂等性???

在RabbitMQ中,保证消费者的幂等性主要依赖于业务设计和实现,而非RabbitMQ本身提供的一种直接功能。 在基于Spring Boot整合RabbitMQ的场景下,要保证消费者的幂等性,通常需要结合业务逻辑设计以及额外的技术手段来实现。以下是一个…

Redis的双写一致性问题

双写一致性问题 1.先删除缓存或者先删除数据库都可能出现脏数据。 2.删除两次缓存,可以在一定程度上降低脏数据的出现。 3.延时是因为数据库一般采用主从分离,读写分离。延迟一会是让主节点把数据同步到从节点。 1.读写锁保证数据的强一致性 因为一般放…

【CVE复现计划】CVE-2024-0195

CVE-2024-0195 简介: SpiderFlow是新一代开源爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。基于springbootlayui开发的前后端不分离,也可以进行二次开发。该系统/function/save接口存在RCE漏洞,攻击者可以构造恶意命…

蓝桥杯加训

1.两只塔姆沃斯牛&#xff08;模拟&#xff09; 思路&#xff1a;人和牛都记录三个数据&#xff0c;当前坐标和走的方向&#xff0c;如果人和牛的坐标和方向走重复了&#xff0c;那就说明一直在绕圈圈&#xff0c;无解 #include<iostream> using namespace std; const i…

评论发布完整篇(react版)

此篇文章阐述评论的最新、最热之间的tab标签切换&#xff08;包括当前所在tab标签的高亮显示问题&#xff09;&#xff1b;当前评论的删除&#xff1b;除此之外还延伸了用户的评论实时发布功能。其中最新tab标签所展示的内容是根据当前评论点赞数来进行排序&#xff0c;点赞数量…

人工智能前沿成科技竞争新高地

以下文章来源&#xff1a;经济参考报 近日&#xff0c;首届中国具身智能大会&#xff08;CEAI 2024&#xff09;在上海举行。作为人工智能领域的前沿热点&#xff0c;具身智能正逐步走进现实&#xff0c;成为当前全球科技竞争的新高地、未来产业的新赛道、经济发展的新引擎。 “…

厂房起火3D消防灭火安全救援模拟演练

深圳VR公司华锐视点依托前沿的VR虚拟现实制作、三维仿真和图形图像渲染技术&#xff0c;将参训者带入栩栩如生的火灾现场。佩戴VR头盔&#xff0c;参训者将真切体验火势蔓延的紧张与危机&#xff0c;身临其境地感受火灾的恐怖。 并且消防安全VR虚拟现实演练系统精心模拟了住宅、…

linux网络服务学习(6):多路径multipath解决iscsi多网卡识别错误问题

1.什么是多路径 1.1路径 物理层面一条数据的访问通道 访问方式&#xff1a; &#xff08;1&#xff09;以太网卡双绞网线以太网交换机 &#xff08;2&#xff09;HBA光纤卡光纤线光纤交换机 访问过程&#xff1a; &#xff08;1&#xff09;冗余链路failover&#xff1a…

Linux学习-网络TCP

TCP通信 TCP发端: socket connect send recv close TCP收端: socket bind listen accept send recv close 1.connect int connect(int sockfd, const struct sockaddr *addr, socklen_t …

德勤:《中国AI智算产业2024年四大趋势》

2023年《数字中国建设整体布局规划》的发布&#xff0c;明确了数字中国是构建数字时代竞争优势的关键支撑&#xff0c;是继移动互联网时代以来经济增长新引擎。当我们谈论数字中国的构建&#xff0c;不仅仅是在讨论一个国家级的技术升级&#xff0c;而是关乎如何利用数字技术来…

显示学习1(基于树莓派Pico) -- 基础

先上图为敬。 驱动的是0.96寸的OLED&#xff0c;SSD1315。使用的I2C接口驱动。 有一说一树莓派Pico用来学习底层真的太好了&#xff0c;没有之一。首先是价格便宜&#xff0c;10块钱包邮还要什么自行车。然后底层封装很完备&#xff0c;接近闭源。最后是用的python&#xff0c…

堆放砖块-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第47讲。 堆放砖块&#xf…

RuntimeError: Error(s) in loading state_dict for ZoeDepth解决方案

本文收录于《AI绘画从入门到精通》专栏,订阅后可阅读专栏内所有文章,专栏总目录:点这里。 大家好,我是水滴~~ 本文主要介绍在 Stable Diffusion WebUI 中使用 ControlNet 的 depth_zoe 预处理器时,出现的 RuntimeError: Error(s) in loading state_dict for ZoeDepth 异常…

TypeScript系列之-基本类型画图讲解

JS的类型(8)&#xff1a; null undefined string number boolean bigint symbol object&#xff08;含 Array, Function,Date.....&#xff09; TS的类型(87): 以上所有&#xff0c;加上 void, never, enum, unknown, any 再加上自定义类型 type interface 上一节我们说…

Google 发布 CodeGemma:7B 力压 CodeLLaMa-13B

刚刚发布&#xff01;Google 带来了新的 Gemma 家族成员&#xff0c;CodeGemma&#xff0c;这是基于预训练的 Gemma-2B 和 Gemma-7B 的代码生成模型。 其上下文窗口长度为8K&#xff0c;在另外 500 B 个主要由英语、数学和代码组成的 token 上进行了训练&#xff0c;改进了逻辑…

【企业场景】设计模式重点解析

设计模式 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff1a; 我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;我们自己开发业务使用的设计模式。 在平时的业务开发中&#xff0c;其实真正使用设计模式的场景并不多&#xff0c;虽然设计号…

allegro图片导入及调整的详细方法

目录 1. 图片转换2. 图片导入3. 导入图片调整3.1 图层调整 1. 图片转换 allegro只能导入IPF格式的文件&#xff1a; 正常情况下我们的图片都是JPG、BMP或者其他常见格式&#xff0c;需要将之转换为IPF格式才能导入&#xff0c;这里有工具。 需要工具在此 ->BMP转IPF工具 …