HDFS分布式文件系统简介

大数据Hadoop(七):HDFS分布式文件系统简介 目录 HDFS分布式文件系统简介 一、HDFS概述 二、HDFS发展历史 三、HDFS设计目标 四、HDFS应用场景 适合的应用场景 不适合的应用场景 五、HDFS的架构 六、HDFS的副本机制 HDFS文件副本机制 HDFS副本放置策略(机架感知) HDFS分布式文件系统简介 一、HDFS概述 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 ​ HDFS(Hadoop Distributed Fil.. 阅读详情

分布式文件系统:

   分布式文件系统管理的屋里存储资源不一定直接在本地节点上,而是通过计算机网络与节点相连。

   分布式文件系统的基于客户机/服务器模式。通常,一个分布式文件系统提供多个供公户访问的服务器。

   分布式文件系统一般都会提供备份和容错功能。

   分布式文件系统一般都基于操作系统的本地文件系统

 

分布式文件系统的优点:

   -传统 文件系统最大问题是容量和吞吐量的限制。

   -多用户多应用的并行读写是分布式文件系统产生的根源。

   -扩充存储空间的成本低廉

   -可提供冗余备份

   -可以为分布式计算提供基础

 

HDFS是一个使用java实现的,分布式的,可横向扩展的文件系统。

       HDFS= Hadoop Distributed File System

       是hadoop的核心组件

       基于linux


HDFS设计目标:

     -基于廉价的普通硬件,可以容忍硬件出错

系统中的某一台或几台服务器出现故障的时候,系统仍可用且数据保持完整。

     -大数据集(大文件)

      HDFS适合存储大量文件总存储量可以达到PB,EB级

      HDFS适合存储大文件,单个文件大小一般在百MB级之上

      文件数目适中

     -简单的一致性模型

      HDFS应用程序需要一次写入,多次读取一个文件的访问模式

      支持追加操作,但无法更改已写入数据

     -顺序的数据流访问

       HDFS适合用于处理批量数据,而不适合用于随机定位访问

     -侧重高吞吐量的数据访问,可以容忍数据访问的高延迟

      为 把“计算”移动到“数据”提供基础和便利。


HDFS基本概念:

     -块

     -元数据

     -namenode

     -datanode

     -客户端

块(block)的概念

     -在传统的块存储介质中,块是读写的最先数据单位(扇区)

     -传统文件系统基于存储块进行操作

     -HDFS也使用了块的概念,但是默认大小设为64M字节

     -HDFS将一个文件分为一个或数个块来存储

     -与传统文件系统不同的是,如果实际数据没有达到块大小,则并不实际占用磁盘空间

使用块的优点:

    -当一个文件大于进群中的任意一个磁盘的时候,文件系统可以充分利用集群中的所有的磁盘

    -管理块是底层的存储子系统相对简单

    -块更加适合备份,从而为容错和高可用性的实现带来方便

HDFS的元数据(数据信息):

    -元数据包括

      1,文件系统和目录树信息

      2,文件和块的对应关系

      3,块的存放位置

    -HDFS对元数据和实际数据采取 分别存储的方法

      1,元数据存储在一台指定的服务器上(namenode)

      2,实际数据存储在集群的其他机器的本地文件系统中(DataNode)

块的冗余备份:

    -每个块在集群上回存储多分(replica)

     1,默认复制分数为3

     2,可针对每个文件配置,

     3,可针对每个文件配置,由客户端指定

     4,可动态修改

    -某个块的所有备份都是同一个ID

    -系统可以根据机架的配置自动分配备份位置

    1,第一份在集群的某个几家的某台机器上

    2,其他两份在另外的一个几家的两台机器上

    3,机架信息需要手工配置

 

NameNode:

    -namenode是用来管理文件系统命名空间的组件

    -一个HDFS集群只有一台Namenode

    -namenode上存放了HDFS的元数据

    -元数据保存在namenode的内存当中,以便快速查询

      1,1G内存大致可以存放1000000个块对应的元数据信息

      2,按缺省每块64M计算,大致对应64T实际数据

DataNode:

     -块的实际数据存放在DataNode上

     -每个块会在本地产生两个文件,一个是实际的数据文件,另一个是块的附加信息文件,其中还包括数据的校验和生成时间。

     -DataNode通过心跳包(heartbeat)与 namenode通讯

     -客户端读取/写入数据的时候直接与DataNode通信

元数据的持久化:

     -namenode里使用两个非常重要的本地文件来保存元数据信息:

     1,fsimage:保存了文件系统目录树信息,保存了文件和块的对应关系

     2,edits:保存文件系统的更改记录,客户端对文件进行写操作时,操作首先记入edits,成功后才会更改内存中的数据,并不会立刻更改硬盘上的fsimage

    -块的位置信息并不做持久化


元数据的载入和更新:

    -namenode启动时:

1,通过fsimage读取元数据,载入内存

    2,执行edits中的记录,在内存中生成最新的元数据

    3,清空edits,保存最新的元数据到fsimage

    4,收集DataNode汇报的块的位置信息

    -namenode运行时:

1,对文件创建和写操作记录到edits

    2,更新内存中的元数据

    3,收集DataNode汇报块的创建和复制信息

 

HDFS创建文件流程:

    -客户端:1,客户端请求namenode在命名空间中建立新的文件元信息

             2,如果不能创建文件则namenode会返回失败

             3,如创建成功,客户端得到此文件的 写保护锁

    -namenode:

     1,namonode检查集群和文件状态

     2,创建写保护锁保证只有一个客户端在操作该文件

     3,建立该文件的元信息

     4,把创建文件这个事件加入edits

     5,位该文件分配块,以及块的冗余备份位置

 

HDFS写操作流程(重点):

     -客户端个文件并不是直接写到HDFS上

     -HDFS客户端接收用户数据,并把内容缓存到本地

     -当本地缓存收集足够一个HDFS块大小的时候,客户端同namenode通讯注册一个新的块

     -注册块成功后,namenode会给客户端返回一个DataNode的列表(块的位置,冗余备份)

     -客户端向列表第一个DataNode写入块

     -收到DataNode的确认信息后,客户端删除本地缓存

     -客户端继续 发送下一个块,重复以上步骤

     -当所有数据发送完成后,写操作完成

 

HDFS的读操作流程:

     -客户端与namenode通讯获取文件的块位置信息,其中包括了块的所有冗余备份的位置信息,DataNode的列表

     -客户端回去文件位置信息后直接同有文件块的DataNode通讯,读取文件

     -如果第一个DataNode无法连接,客户端将自动联系下一个DataNode

     -如果块数据的校验值出错,则客户端需要向namenode报告,并自动联系下一个DataNode

HDFS追加写(append)的操作流程:

     -客户端与namenode通讯,获得文件的写保护锁及文件最后一个块的位置(DataNode)

     -客户端挑选一个DataNode作为主写入点,并对其余节点上的该数据块加锁。

     -开始写入数据:与普通写入流程类似,依次更新各个DataNode数据

     -最后一个块写满,并且所有备份块后写入完成后,向namenode申请下一个数据块

secondary namenode:

     -secondary namenode不是备份节点

     -secondary namenode的主要工作是阶段性的合并fsimage和edits文件,以此来控制edits的文件大小在合理的范围(缩短重启时namenode重建fsimage时间,做数据恢复,但不是全部)

     -secondary namenode运行在不同于namenode的主机上,内存需求和namenode一样。

Altium Designer铺铜陷阱:为什么你的死铜总是清除不干净? 本文深入探讨Altium Designer中铺铜操作导致死铜无法清除的常见问题,分析死铜形成的五大诱因,并提供高级参数优化和网络连接性验证技巧。通过调整边界计算精度和泪滴算法设置,有效解决死铜残留问题,提升PCB设计质量与制造良率。 阅读详情

相关推荐

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5346

主流的分布式文件系统

NFS(网络文件系统) 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。 (1)在客户端上映射NFS服务器的驱动。 (2)客户端通过网络访问NFS服务器的硬盘完全透明 ...

qq_44772414的博客 1万+

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 312

9种分布式文件系统

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),也就是Unix下应用程序共同遵循的一种规范。支持POSIX的应用程序意味着在各个Unix系统间提供了跨平台运行的支持。

爱琴孩的博客 4197

机器学习——径向基函数(RBF)神经网络

目录 一、什么是基函数 二、什么是径向基函数 三、为什么RBF神经网络使用一个径向基函数作为隐含层的激活函数 四、参数训练 五、RBF网络vs BP网络和 SVM 一、什么是基函数 著名的傅里叶变换是指:n个有参(权值)的正、余弦三角函数基的和式可以等价的表示任意一个周期函数,这里的“基”和我们数学中说的坐标基或向量基含义相同,即坐标空间中任意一个向量都可以用基向量的线性和表示出来。 因此,我们引入函数空间的概念,函数空间中的每个连续函数可以表示为基函数的线性组合,就像向量空间中的每..

CHWB2580的博客 6272

用ADS复现一篇MTT顶刊的GAN功率放大器:从理论推导到版图仿真的完整避坑指南

本文详细解析了如何利用ADS软件复现MTT顶刊中的E/F3类GaN功率放大器设计,从理论推导到版图仿真的全流程。通过核心设计理念解析、ADS环境配置、输出匹配网络优化等关键步骤,提供了一套完整的工程实践指南,帮助工程师跨越学术理论与实际应用的鸿沟,实现高效率射频功率放大器的设计。

weixin_30654583的博客 315

分布式文件系统有哪些_常用的"分布式文件系统"有哪些?

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,它的设计是基于客户端/服务器模式。 图片来源于网络如上图所示,应用服务器和文件服务器分别存在于网络当中,而这里的网络,可以是统一子网,也可以是不同子网。服务器对文件的存取,均在网...

weixin_39860349的博客 2652

【论文详解】AlphaGenome——Sequence-to-Multimodal-Genome-Track

**AlphaGenome** 是由 **Google DeepMind** 于 2025 年 6 月发布的突破性 AI 模型,专门用于预测非编码区遗传变异的功能效应。该模型采用受 **U-Net** 启发的卷积架构结合 **Transformer** 模块,创新性地解决了传统模型在输入序列长度与预测分辨率之间的核心矛盾——能够在 **1M 碱基对的超长上下文** 下实现 **单核苷酸分辨率** 的精准预测。

zwhszdx的博客 963

常见分布式存储系统

一、数据存储类型 一般情况下,我们将存储分成了4种类型,基于本机的DAS和网络的NAS存储、SAN存储、对象存储。对象存储是SAN存储和NAS存储结合后的产物,汲取了SAN存储和NAS存储的优点。 1.DAS DAS将计算、存储能力一把抓,封装在一个服务器里。大家日常用的电脑,就是一个DAS系统。 2.NAS 如果将计算和存储分离了,存储成为一个独立的设备,并且存储有自己的文件系统,可以自己管理...

清平乐的技术专栏 4970

Gerrit 使用操作手册

Gerrit是一种免费、开源的代码审查工具,使用网页交互页面。这个软件的名称来自于荷兰设计师师赫里特·里特费尔德(GerritRietveld),作者为Google公司的ShawnPearce。它使用Git作为底层版本控制系统,相比于其他的代码管理工具,Gerrit明显的特色是代码审核。利用网页浏览器,同一个团队的软件程序员,可以相互审核(Review)彼此修改后的程序代码,然后决定是继续提交还是取消提交。...

九离的博客 1万+

uniapp(vue3):实现手机拍照或相册图片上传后给图片添加水印,uniapp实现多端图片上传、拍照上传自定义插入水印内容,调用手机摄像头打开相机并在周围悬挂自定义水印(支持文字水印/图片水印等)

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uni-app为图片添加自定义水印(解决生成图片不全问题),uniapp上传图片添加水印,uniapp H5实现手机拍照或相册上传图像并添加自定义水印,uniapp水印相机,uni-app为图片添加自定义水印,怎么在图片上加水印,图片水印,上传照片带水印,从相册选择图片加水印功能,拍完照片给图片加水印,添加照片水印,uniapp图片加水印,为图片添加自定义水印,uni-app上传图片并添加水印,上传图

✅ 精选推荐文章 3265

各种分布式文件系统的比较

各种分布式文件系统的比较

ugfffj的博客 2109

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

分布式文件系统HDFS简介

目录 计算机集群结构 HDFS的局限性: HDFS的优点: HDFS的主要组件 名称结点NameNode FSImage文件 SecondaryNameNode第二名称节点 数据节点(DataNode) 计算机集群结构 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode) H.

二琳爱吃肉的博客 1705

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

分布式文件系统 HDFS知识简介

将文件从源路径移动到目标路径。从本地文件系统中复制单个或多个源路径到目标文件系统。如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。将hdfs中 hadoop001/test/test.txt文件下载到centos。调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。查看hdfs中 hadoop001/test/test.txt 文件内容。使用方法:hadoop fs -mv URI [URI …使用方法:hadoop fs -rm URI [URI …

weixin_43894652的博客 185

分布式文件系统 HDFS 简介

文章目录1. HDFS 简介2. HDFS起源发展3. HDFS设计目标4. HDFS应用场景5. HDFS重要特性--主从架构6. HDFS重要特性--分块存储机制7. HDFS重要特性--副本机制8. HDFS重要特性--namespace9. HDFS重要特性--元数据管理10. HDFS重要特性--数据块存储 1. HDFS 简介 HDFS( Hadoop Distributed File System ),意为:Hadoop分布式文件系统。是Apache Hadoop核心组件之一,作为大数据生态

兮动人 1481

HDFS分布式文件系统-简介

HDFS分布式文件系统 HDFS 简介 HDFS (全称:Hadoop Distribute File System,Hadoop 分布式文件系统)是 Hadoop 核心组成,是分布式存储服务。 分布式文件系统横跨多台计算机,在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力。 HDFS是分布式文件系统中的一种 HDFS的重要概念 HDFS 通过统一的命名空间目录树来定位文件; 另外,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色(分布式本质是拆分,各司

小城我家 706

Hadoop HDFS(分布式文件系统)简介

它最初是根据Google的GFS(Google File System)论文设计而来,通过将大规模数据集分布式存储在集群中的多个计算节点上,实现了高可靠性、高容错性和高吞吐量的数据存储和访问。大规模日志存储和分析:HDFS适用于存储和分析大规模的日志数据。用户可以将日志文件写入HDFS,并使用适当的工具和技术进行日志分析、问题排查和趋势预测。存储和处理大数据:HDFS是存储和处理大规模数据的理想选择,它提供了高可扩展性、高容错性和高吞吐量,适用于处理大数据集和执行复杂的分布式计算任务。

wang2leee的博客 425

hdfs分布式文件系统简介与设计原理

hdfs是大数据的地基,是大数据入门必须了解的一个东西。笔者最近也在做一个分布式文件系统的项目。会在之后更新hdfs的高可用设计和参考github项目

zhaicheng55的博客 1294

分布式文件系统—HDFS—入门简介

原文作者:Zh_Y_G 原文地址:HDFS入门简介 目录 HDFS是什么? 设计目标: 安装配置 HDFS读写流程图解 CheckPoint HDFS是什么? 易于扩展的分布式文件系统 运行在大量普通廉价机器上提供容错机制 为大量用户提供性能不错的存取服务 设计目标: 自动快速检测应对硬件错误 流式访问数据,以流的方式访问数据,设计用于数据的批量处理 缺点:不适合存储大量小文件;不适合低延迟的数据访问;不支持多用户写入及任意修改文件 移动计算不移动数据(大数据基本原则,空间.

sanmi8276的博客 329

Hadoop分布式文件系统——HDFS原理简介

一、介绍 HDFS(Hadoop Distributed File System)是Hadoop下的一个分布式文件系统。可以执行任意一个文件系统所应该具有的功能,目录结构比较类似于Linux文件系统。特点是分布式以及大数据存储。 具有高容错、高吞吐量的特点,可以部署在低成本的硬件上。 二、HDFS设计原理 2.1 HDFS架构 HDFS遵循M/S(主/从)架构,由单个NameNode(NN...

Brave_man_O的博客 1005
上一篇: 使用cloudera manager进行hadoop安全认证-simple模式
下一篇: hive中调用函数一直处于卡顿状态
AA赵师傅
博客等级 码龄9年 89粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值