前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop分布式文件系统(HDFS)

Hadoop分布式文件系统(HDFS)

作者头像
大数据老哥
发布于 2021-03-23 13:27:13
发布于 2021-03-23 13:27:13
1.5K0
举报

一、介绍

HDFSHadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。

二、HDFS 设计原理

2.1 HDFS 架构

HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成:

  • NameNode : 负责执行有关 文件系统命名空间 的操作,例如打开,关闭、重命名文件和目录等。它同时还负责集群元数据的存储,记录着文件中各个数据块的位置信息。
  • DataNode:负责提供来自文件系统客户端的读写请求,执行块的创建,删除等操作。

2.2 文件系统命名空间

HDFS 的 文件系统命名空间 的层次结构与大多数文件系统类似 (如 Linux), 支持目录和文件的创建、移动、删除和重命名等操作,支持配置用户和访问权限,但不支持硬链接和软连接。NameNode 负责维护文件系统名称空间,记录对名称空间或其属性的任何更改。

2.3 数据复制

由于 Hadoop 被设计运行在廉价的机器上,这意味着硬件是不可靠的,为了保证容错性,HDFS 提供了数据复制机制。HDFS 将每一个文件存储为一系列,每个块由多个副本来保证容错,块的大小和复制因子可以自行配置(默认情况下,块大小是 128M,默认复制因子是 3)。

2.4 数据复制的实现原理

大型的 HDFS 实例在通常分布在多个机架的多台服务器上,不同机架上的两台服务器之间通过交换机进行通讯。在大多数情况下,同一机架中的服务器间的网络带宽大于不同机架中的服务器之间的带宽。因此 HDFS 采用机架感知副本放置策略,对于常见情况,当复制因子为 3 时,HDFS 的放置策略是:

在写入程序位于 datanode 上时,就优先将写入文件的一个副本放置在该 datanode 上,否则放在随机 datanode 上。之后在另一个远程机架上的任意一个节点上放置另一个副本,并在该机架上的另一个节点上放置最后一个副本。此策略可以减少机架间的写入流量,从而提高写入性能。

如果复制因子大于 3,则随机确定第 4 个和之后副本的放置位置,同时保持每个机架的副本数量低于上限,上限值通常为 (复制系数 - 1)/机架数量 + 2,需要注意的是不允许同一个 dataNode 上具有同一个块的多个副本。

2.5 副本的选择

为了最大限度地减少带宽消耗和读取延迟,HDFS 在执行读取请求时,优先读取距离读取器最近的副本。如果在与读取器节点相同的机架上存在副本,则优先选择该副本。如果 HDFS 群集跨越多个数据中心,则优先选择本地数据中心上的副本。

2.6 架构的稳定性

1. 心跳机制和重新复制

每个 DataNode 定期向 NameNode 发送心跳消息,如果超过指定时间没有收到心跳消息,则将 DataNode 标记为死亡。NameNode 不会将任何新的 IO 请求转发给标记为死亡的 DataNode,也不会再使用这些 DataNode 上的数据。由于数据不再可用,可能会导致某些块的复制因子小于其指定值,NameNode 会跟踪这些块,并在必要的时候进行重新复制。

2. 数据的完整性

由于存储设备故障等原因,存储在 DataNode 上的数据块也会发生损坏。为了避免读取到已经损坏的数据而导致错误,HDFS 提供了数据完整性校验机制来保证数据的完整性,具体操作如下:

当客户端创建 HDFS 文件时,它会计算文件的每个块的 校验和,并将 校验和 存储在同一 HDFS 命名空间下的单独的隐藏文件中。当客户端检索文件内容时,它会验证从每个 DataNode 接收的数据是否与存储在关联校验和文件中的 校验和 匹配。如果匹配失败,则证明数据已经损坏,此时客户端会选择从其他 DataNode 获取该块的其他可用副本。

3.元数据的磁盘故障

FsImageEditLog 是 HDFS 的核心数据,这些数据的意外丢失可能会导致整个 HDFS 服务不可用。为了避免这个问题,可以配置 NameNode 使其支持 FsImageEditLog 多副本同步,这样 FsImageEditLog 的任何改变都会引起每个副本 FsImageEditLog 的同步更新。

4.支持快照

快照支持在特定时刻存储数据副本,在数据意外损坏时,可以通过回滚操作恢复到健康的数据状态。

三、HDFS 的特点

3.1 高容错

由于 HDFS 采用数据的多副本方案,所以部分硬件的损坏不会导致全部数据的丢失。

3.2 高吞吐量

HDFS 设计的重点是支持高吞吐量的数据访问,而不是低延迟的数据访问。

3.3 大文件支持

HDFS 适合于大文件的存储,文档的大小应该是是 GB 到 TB 级别的。

3.3 简单一致性模型

HDFS 更适合于一次写入多次读取 (write-once-read-many) 的访问模型。支持将内容追加到文件末尾,但不支持数据的随机访问,不能从文件任意位置新增数据。

3.4 跨平台移植性

HDFS 具有良好的跨平台移植性,这使得其他大数据计算框架都将其作为数据持久化存储的首选方案。

附:图解HDFS存储原理

说明:以下图片引用 (https://blog.csdn.net/hudiefenmu/article/details/37655491)

1. HDFS写数据原理

2. HDFS读数据原理

3. HDFS故障类型和其检测方法

第二部分:读写故障的处理

第三部分:DataNode 故障处理

副本布局策略

彩蛋

资源获取 获取Flink面试题,Spark面试题,程序员必备软件,hive面试题,Hadoop面试题,Docker面试题,简历模板,优质的文章等资源请去 下方链接获取 GitHub自行下载 https://github.com/lhh2002/Framework-Of-BigData Gitee 自行下载 https://gitee.com/li_hey_hey/dashboard/projects

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据老哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
牧羊人如何管理羊群的?(下)——利用羊群管理模型改进你的团队和职业生涯作为经理人的牧羊犬 作为团队榜样的头羊 作为团队成员其它羊 写在最后
在《牧羊人如何管理羊群的?(上)——利用羊群管理模型理解你的团队》里,我们知道了作为牧羊人——Boss或者是Owner应该如何分析和理解团队。这对于创业型团队或者中小型企业的企业主都是合适的。而作为大型企业的员工,你是牧羊人以外的其它角色。那我们来看看,作为其它角色的你,如何利用羊群管理模型改进你的团队或者职业生涯。
顾宇
2018/08/17
1.1K0
12种免费思维导图工具助你成为结构化思维专家(上)
简介 我们从一个简单的练习开始吧 “如果我们任命你为店长,去管理经营状况最糟糕的一个店面。那么,在经营这家店时,你会考虑哪些方面?你要做什么去改变当前糟糕的局面呢?” 花几分钟好好考虑一下这个问题吧。在纸上写下一些你考虑的事情,然后我们继续往下看。 你觉得这个练习怎么样?难不难?你确定你已经写下了所有可能的方面了吗? 如果你不确定你已经想得很全面,或者你的列表看上去只是一个待办清单,没有任何框架或者结构,那么这篇文章将在很大程度上给你提供帮助。 结构化思维的重要性 每个人都有能力在同一时间思考多方面的问题
灯塔大数据
2018/04/09
7790
12种免费思维导图工具助你成为结构化思维专家(上)
15款最好用的思维导图工具
今天给大家推荐15个常用的思维导图软件,帮助大家更快捷的完成工作,简化工作工作流程,非常的实用。 思维导图也叫心智图,是一项流行的全脑式学习方法,用来表示词,思路,任务或其他与围绕着一个中央关键词或想法项目的示意图。通过径向,图形和非线性的方式提出意见,思维导图鼓励头脑风暴的方法来规划和组织任务。虽然思维导图的分支表示分层树形结构,其放射状排列扰乱通常与呈现更加线性的视觉线索层次相关概念的优先次序。 在这里,我们选择了一些最好的思维导图工具,让您能够快速探索思路,与同事协作和编辑你的内容。下面的大多数工具是
机器学习AI算法工程
2018/03/09
15.9K1
15款最好用的思维导图工具
20~50岁该如何规划你的职业生涯看完不再迷茫!
你今年几岁?在目前这间公司待了几年?对往后10年的生涯,有任何确切的规划或执行步骤了吗?以上3个问题,在全球知名管理大师大前研一看来,正是决定你的职业生涯能否一帆风顺、最后风光退休的关键。
用户1756920
2018/07/23
1.2K0
20~50岁该如何规划你的职业生涯看完不再迷茫!
如何做好职业规划,也许这几点能够帮助你
一个偶然的机会看到了来自『 HP大中华区总裁孙振耀退休感言 』中的一段话,为什么是偶然呢?因为这是一篇来自 2008 年左右的文章,基本上不会出现在现在的媒体报道中啦,这段话给我产生了共鸣。于是细细品读了『 HP大中华区总裁孙振耀退休感言 』这篇文章,收获颇多,作者孙振耀老先生讲述了年轻人如何择业、如何跳槽、如何面对逆境、如何在职场成长等。告诉我们如何成为一个优秀的普通人,我想普通才是最真实,毕竟我们都普通。下文的内容全部来源『 HP大中华区总裁孙振耀退休感言 』,希望这些观点能够帮助我们成为更优秀的普通
腾讯大讲堂
2019/10/08
4760
如何做好职业规划,也许这几点能够帮助你
🦀🦀🦀 一个普通人的前端职业成长之路
大家好,我是 「范文杰」,一个前端从业者,最近刚写完我的第一本小册《Webpack 核心原理与实践应用》,这对我是一个不小的职业突破,所以不能免俗地想做个总结,分享我这九年工作的成长经历,以及我对前端这个职业的思考与成长建议,希望能帮到哪些还在路上的朋友。
Tecvan
2022/12/07
5420
🦀🦀🦀 一个普通人的前端职业成长之路
14张思维导图读懂 Python 编程核心知识体系
【新智元导读】本文主要涵盖了 Python 编程的核心知识,用14张思维导图说明问题。 本文来自ZOE | 数林觅风,作者小越酱,某医学院研二小硕一枚,热爱思维导图及数据科学,梦想着毕业后能从事数据相关的工作,https://github.com/woaielf/MindMap_ZY。个人博客:https://woaielf.github.io 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库,后续会发布相应专题的文章)。 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,数
新智元
2018/03/21
7740
14张思维导图读懂 Python 编程核心知识体系
搞定GTD - 合乎自然的项目规划法
这次介绍GTD总流程图左侧的项目分解的步骤,对于需要多个步骤的项目,需要留出专门的时间进行项目计划,分解出多个行动来。《搞定1》里称为一个项目的纵向规划,而在《搞定3》中起了个好听的名字,叫:合乎自然
申龙斌
2018/03/06
1.5K0
搞定GTD - 合乎自然的项目规划法
程序员跳槽时,如何正确做好职业规划?
作者说: 经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我,我现在成长的非常慢所以又想跳槽了,我看不到公司的发展前景好迷茫,其实这一切的困惑都来源于没有做好职业规划或者你根本就没有职业规划过。 那今天我就从以下几个话题和大家分享下我所理解的职业规划 Tips ,也欢迎大家踊跃提问。 为什么要做职业规划? 我们先聊聊第一个话题,为什么要做职业规划? 首先,我们要知道职业规划是什么,也就是如何持续选择适合自己发展的工作的过程。 职业规划其实就是对职业生涯乃至人生进行持续的、
CSDN技术头条
2018/03/26
1.3K0
程序员跳槽时,如何正确做好职业规划?
如何使用思维导图整理测试点?
思维导图又称脑图、心智地图、脑力激荡图、灵感触发图、概念地图、树状图、树枝图或思维地图,是一种图像式思维的工具以及一种利用图像式思考辅助工具。思维导图是使用一个中央关键词或想法引起形象化的构造和分类的想法;它用一个中央关键词或想法以辐射线形连接所有的代表字词、想法、任务或其它关联项目的图解方式。
张树臣
2018/07/24
2.7K0
如何使用思维导图整理测试点?
这可能是今年最值得入手的一本思维导图书
👆点击“博文视点Broadview”,获取更多书讯 绘制【思维导图】几乎是每一位职场人都必须掌握的技能,其实不只局限于职场,思维导图几乎可以应用在生活中的每一个场景,帮助我们延展思维,收获效率。 在众多思维导图绘制软件中,XMind可谓所有人的首选。XMind团队始终以匠人精神打磨产品,同时在内容输出上不懈努力,形成了35个关于思维的高效解决方案,汇集到了《XMind:用好思维导图走上开挂人生》一书中,跃然纸上。 35个关于思维的高效解决方案 ---- 01 出版初衷 在思维导图领域深耕十余年,XMi
博文视点Broadview
2023/05/19
3030
这可能是今年最值得入手的一本思维导图书
德鲁克:如何自我管理并规划职业生涯
这篇文章出自德鲁克的《21世纪的管理挑战》一书,其中有一章叫我《自我管理》,阅读这一章时读了好多遍,还做过笔记。这一章的影响力一直很大,总能看到各种网站转载,还记得《哈佛商业评论》在2005年1月也发
用户1756920
2018/06/20
1.3K0
联盟:互联网时代的人才变革
本书提供了一种使雇主与员工之间从商业交易转变为互惠关系的框架,创建了一种鼓励公司和个人相互投资的工作模式。打造任期制,将非终身雇用的员工变为公司的长期人脉,并吸收员工的高效人脉情报。只有雇主与雇员结为强大的联盟,共同拥有持续的创新与丰富的智慧宝库,员工、团队、企业,乃至整个经济才能繁荣发展。
CreateAMind
2018/07/24
6980
联盟:互联网时代的人才变革
当面试官问你职业规划,你如何答复才能拿到Offer?
在面试中不论是在一面二面三面这种技术面,还是在最后的hr面,经常会被人问及,"谈谈你的职业规划"这种问题,我们回答的很可能会给我们的面试表现加分,如果回答地不好,对于一些面试官来说无伤大雅,但对于某些 面试官来说,可能直接就会给我们pass掉,可能有些人看到这里会说,"乔兄,你就在吓我吧,哪有这么严重,哼!",我当初也是这么想的,直到我在秋招中付出了惨重的学费,才知道回答这类问题的重要性。这里真没有吓大家,这里分享一波我之前的面试经历。
Java3y
2020/02/19
18.4K0
当面试官问你职业规划,你如何答复才能拿到Offer?
如何在 FlowUs、Notion 等笔记软件中使用思维导图?
思维导图是一种在全世界广为人知、重要的视觉工具。英文原文为 the Mind Map,由东尼·博赞(Tony Buzan)创建和推广。思维导图在灵感收集、头脑风暴、增强记忆、笔记管理、创意写作、教育以及办公等领域获得了十分广泛的应用。在近几十年,思维导图工具遍地开花。在苹果生态,MIndeNode 以其兼具优雅和强大的特性受到众多用户的喜爱。而 Xmind 这款思维导图工具,以其全平台、功能强悍等多种优点获得了大量海内外用户。注释:本文方法对于 FlowUs 、Notion 等笔记软件均通用。本文以 FlowUs 为例。
数字花园
2022/06/02
9700
如何在 FlowUs、Notion 等笔记软件中使用思维导图?
12种思维导图工具助你成为结构化思维专家
我们从一个简单的练习开始吧。“如果我们任命你为店长,去管理经营状况最糟糕的一个店面。那么,在经营这家店时,你会考虑哪些方面?你要做什么去改变当前糟糕的局面呢?”
IT阅读排行榜
2018/08/16
7120
12种思维导图工具助你成为结构化思维专家
使你的IT职业生涯更上一层楼de14条建议
摘要:升值为企业IT部门的领导者,是大部分IT技术人员职业生涯的最终追求。但从一般大众中脱颖而出,并非易事。仅仅把本职工作干好远远不够,还需要IT技术人员展示出投身于技术发展的奉献精神及伴随技术发展而发展的能力。 升值为企业IT部门的领导者,并非一件易事。从一般大众中脱颖而出,则更不容易。 2013是一个好年头,据专家报告显示,6月所有新工作中,10%来自技术领域。这对于那些希望高升、换岗、跳槽的IT技术人员来说是个好消息。但要想这些职业“变动”成为可能,你需要让雇佣者感受到你可以带来更多价值。 根据CIO
hbbliyong
2018/03/06
6140
做好职业生涯规划,等于成功了一半,一定要慎入行
人的一生中,除了睡眠,大部分的时间都要用于工作,当每一天我们所做的是一些微不足道的小事时,我们开始自怨自艾、怨天尤人。也许就是在一些小事中,我们有过些错误的职场行为,导致机会就在这些简单的错误中悄悄地溜走了。
用户1289394
2018/10/08
5800
做好职业生涯规划,等于成功了一半,一定要慎入行
思维导图xmind下载激活教程,xmind pro软件安装
XMind是一款由思维导图科技有限公司开发的思维导图软件,功能完善、界面简洁、易于上手,被广泛应用于各个领域。然而,由于其功能繁多、操作复杂,很多用户并不熟悉或不规范使用,导致了不少问题。因此,正确使用XMind是非常重要的,本文将通过具体案例分享和常见问题解答,为用户提供详细的使用指南和技巧。
优木软件
2023/04/28
6320
程序员职业规划
每个程序员的职业生涯无非以下几种情况: 一、帮别人挣钱(打工) 不管你是刚入职的小兵,还是管人的经理,甚至是唬人的总监,都属于这一阶段。 通常程序员在这一阶段的职业发展分两条线,专家(技术)线和管理线。专家线主要跟机器打交道,搞搞性能调优,高并发处理等等高精尖的问题;管理线主要跟人打交道,了解下属的状态,控制资源和进度。 这一阶段的特点是稳定,低风险也低门槛。缺点是有天花板,一切按部就班,不会有太大起伏。收入可以稳定预估,除非是公司上市凭期权小赚一笔(当然概率很低)。 二、为自己挣钱(SOHO) 比打工风
架构师小秘圈
2018/04/02
8710
程序员职业规划
推荐阅读
相关推荐
牧羊人如何管理羊群的?(下)——利用羊群管理模型改进你的团队和职业生涯作为经理人的牧羊犬 作为团队榜样的头羊 作为团队成员其它羊 写在最后
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档