Hadoop-分布式系统文件

发布时间:2021-12-03 12:39:54

参考
分布式文件系统(DFS)

在传统的高性能集群中,计算节点和存储节点是各自独立的,它们之间通过高速网络完成互联,然而,在面临海量数据处理的问题时,网络必然会成为整个系统的性能瓶颈,这就需要引入超高速的网络如万兆以太网或Infiniband。然而,对大数场景来讲它们属于“奢侈品”,且昂贵的投入并不能带来网络性能的线性提升,因此性价比不高。面对这种问题,MapReduce采取了将计算节点与存储节点合二为一的集群模型,它利用分布式文件系统将数据存储于多个节点上,而后让处理过程在各数据节点本地直接进行,从而极大地降低了数据通过网络传送的需求。不过,这里仍然需要说明的是,MapReduce并非依赖于分布式文件系统,只不过运行在非分布式文件系统的MapReduce的诸多高级特性将无用武之地。


事实上,分布式文件系统并非MapReduce带来的新生事物,只不过,MapReduce站在前人的基础上将分布式文件系统进行了改造以使得它更能够适用于在MapReduce中完成海量数据处理。Google为在他们的MapReduce中实现的分布式文件系统为GFS(Google File System),而Hadoop的实现称作HDFS(Hadoop Distributed File System)。


HDFS的设计理念

HDFS专为存储大文件而设计,可运行于普通的商业服务器上,基于流式数据访问模型完成数据存取。HDFS将所有文件的元数据存储于名*诘(NameNode)的内存中,能够利用分布式特性高效地管理“大”文件(GB级别甚至更大的文件),对于有着海量小文件的应用场景则会给名*诘愦ゾ薮笱沽Σ⑹沟闷涑晌低承阅芷烤薄T僬撸琀DFS为MapReduce的计算框架而设计,存储下来数据主要用于后续的处理分析,其访问模型为“一次写入、多次读取”;因此,数据在HDFS中存储完成后,仅能在文件尾部附加新数据,而不能对文件进行修改。另外,HDFS专为了高效地传输大文件进行了优化,其为了完成此目标,在“低延迟”特性上做出了很大让步,因此,其不适用于较小访问延迟的应用。


HDFS架构
HDFS数据块

与传统文件系统一样,HDFS也在“块(block)”级别存取文件,所不同的是,传统文件系统数据块一般较小(1KB、2KB或4KB等),HDFS的数据块大小默认为64MB,甚至可以使用128MB或256MB级别的数据块。HDFS使用块抽象层管理文件,可以实现将分块分为多个逻辑部分后分布于多个存储节点,也能够有效简化存储子系统。而对于存储节点来说,较大的块可以减少磁盘的寻道次数,进而提升I/O性能。


名*诘(NameNode)和数据节点(DataNode)

HDFS集群中节点的工作模型为“master-worker”:其包含一个名*诘(master)和多个数据节点(worker)。


名*诘愀涸鸸芾鞨DFS的名称空间,即以树状结构组织的目录及文件的元数据信息,这些信息持久存储于名*诘惚镜卮排躺喜⒈4嫖瓶占渚迪(namespace image)和编辑日志(edit log)两个文件。名*诘悴⒉淮娲⑹菘椋鲂枰烂扛鑫募杂κ菘榈拇娲⑽恢茫凑嬲娲⒘耸菘榈氖萁诘恪H欢*诘悴⒉换岢志么娲⑹菘樗肫浯娲⑽恢玫亩杂π畔ⅲ蛭庑┬畔⑹窃贖DFS集群启动由名*诘愀莞魇萁诘惴⒗吹男畔⒔兄亟ǘ础U飧鲋亟ü瘫怀莆狧DFS的安全模式。数据节点的主要任务包括根据名*诘慊蚩突У囊笸瓿纱娲⒒蚨寥∈菘椋⒅芷谛缘亟浔4娴氖菘橄喙匦畔⒈ǜ娓*诘恪


默认情况下,HDFS会在集群中为每个数据块存储三个副本以确保数据的可靠性、可用性及性能表现。在一个大规模集群中,这三个副本一般会保存至不同机架中的数据节点上以应付两种常见的故障:单数据节点故障和导致某机架上的所有主机离线的网络故障。另外,如前面MapReduce运行模型中所述,为数据块保存多个副本也有利于MapReduce在作业执行过程中透明地处理节点故障等,并为MapReduce中作业协同处理以提升性能提供了现实支撑。名*诘慊岣菔萁诘愕闹芷谛员ǜ胬醇觳槊扛鍪菘榈母北臼欠穹弦螅陀谂渲酶鍪蟮慕岫云浣胁棺悖喑龅慕岜欢


HDFS提供了POSIX网络的访问接口,所有的数据操作对客户端程序都是透明的。当客户端程序需要访问HDFS中的数据时,它首先基于TCP/IP协议与名*诘慵嗵腡CP端口建立连接,接着通过客户端协议(Client Protocol)发起读取文件的请求,而后名*诘愀萦没肭蠓祷叵喙匚募目楸晔斗(blockid)及存储了此数据块的数据节点。接下来客户端向对应的数据节点监听的端口发起请求并取回所需要数据块。当需要存储文件并写数据时,客户端程序首先会向名*诘惴⑵鹈瓶占涓虑肭螅*诘慵觳橛没У姆梦嗜ㄏ藜拔募欠褚丫嬖冢绻挥形侍猓瓶占浠崽粞∫桓龊鲜实氖萁诘惴峙湟桓隹障惺菘楦突Ф顺绦颉?突Ф顺绦蛑苯咏娲⒌氖莘⑼杂Φ氖萁诘悖谕瓿纱娲⒑螅萁诘憬菝*诘愕闹甘窘菘楦粗贫喔龈北局疗渌诘恪


名*诘愕目捎眯

由前一节所述的过程可以得知,名*诘愕腻椿岬贾翲DFS文件系统中的所有数据变为不可用,而如果名*诘闵系拿瓶占渚迪裎募虮嗉罩疚募鸹档幕埃鯤DFS甚至将无从重建,所有数据都会丢失。因此,出于数据可用性、可靠性等目的,必须提供额外的机制以确保此类故障不会发生,Hadoop为此提供了两种解决方案。
最简单的方式是将名*诘闵系某志迷菪畔实时存储多个副本于不同的存储设备中。Hadoop的名*诘憧梢酝ü粜耘渲檬褂枚喔霾煌拿瓶占浯娲⑸璞福*诘愣远喔錾璞傅男慈氩僮魇峭降摹5泵*诘愎收鲜保稍谝惶ㄐ碌奈锢碇骰霞釉匾环菘捎玫拿瓶占渚迪窀北竞捅嗉罩靖北就瓿擅瓶占涞闹亟āH欢荼嗉罩镜拇笮〖凹汗婺#飧鲋亟ü炭赡苄枰艹な奔洹
另一种方式是提供第二名*诘(Secondary NameNode)。第二名*诘悴⒉徽嬲缪菝*诘憬巧闹饕挝袷侵芷谛缘亟嗉罩竞喜⒅撩瓶占渚迪裎募幸悦獗嗉罩颈涞霉蟆K诵性谝桓龆懒⒌奈锢碇骰希⑿枰*诘阃蟮哪诖孀试蠢赐瓿晌募喜ⅰA硗猓贡4嬉环菝瓶占渚迪竦母北尽H欢萜涔ぷ骰瓶芍诙*诘阋秃笥谥鹘诘悖虼嗣*诘愎收鲜保糠质荻匀徊豢杀苊狻
尽管上述两种机制可以最大程序上避免数据丢失,但其并不具有高可用的特性,名*诘阋廊皇且桓龅サ愎收希蛭溴椿螅械氖萁荒芄槐环梦剩幸览涤诖薍DFS运行的MapReduce作业也将中止。就算是备份了名称空间镜像和编辑日志,在一个新的主机上重建名*诘悴⑼瓿山邮绽醋愿魇萁诘愕目樾畔⒈ǜ嬉残枰艹さ氖奔洳拍芡瓿伞T谟行┯τ没肪持校饪赡苁俏薹ń邮艿模耍琀adoop 0.23引入了名*诘愕母呖捎没??设置两个名*诘愎ぷ饔凇爸鞅浮蹦P停鹘诘愎收鲜保渌蟹窠⒓醋浦帘赣媒诘恪=徊叫畔⑶氩慰脊俜绞植帷


在大规模的HDFS集群中,为了避免名*诘愠晌低称烤保贖adoop 0.23版本中引入了HDFS联邦(HDFS Federation)机制。HDFS联邦中,每个名*诘愎芾硪桓鲇擅瓶占湓莺桶怂锌橄喙匦畔⒌目槌刈槌擅瓶占渚(namespace volume),各名*诘闵系拿瓶占渚硎腔ハ喔衾氲模虼耍桓雒*诘愕乃鸹挡⒉挥跋炱渌*诘慵绦峁┓瘛=徊叫畔⑶氩慰脊俜绞植帷


?

相关文档

  • JAVA classpath设置方式启动详解:java class名、java -jar
  • Dubbo框架中的应用(两)--服务治理
  • 2020疫情过后,我面试经历:通过五轮面试斩获offer阿里实习生亲述(内有面试题)
  • 太阳简笔画画法
  • 在word文档中如何插入实心的五角星?
  • 为什么从后面做会有气出来
  • 夸夸我的朋友
  • 校园安全健康讲话稿
  • 乡镇小学有关爱留守学生工作总结
  • 带麦克风的耳机如何使用麦克风部分
  • 浙大版《C语言程序设计(第3版)》题目集练习4-11 统计素数并求和 (20分)
  • 棉纺企业公司简介
  • 高中物理知识点记忆口诀汇总
  • 基金销售相关规定有哪些
  • 自媒体视频消重方法,批量处理去重消重去水印去logo软件头条号运营技巧:视频重复文章没有推荐,如何避...
  • 如何写一篇提倡关爱留守儿童的倡议书
  • 以感恩节和感恩为主题的句子
  • 产后什么时候可以瘦身产后瘦身怎么做
  • 工商管理能考什么职称
  • 情人节温馨祝福寄语
  • 搭建基于qemu的linux开发环境
  • 乌班图运行java_如何在Ubuntu中运行Java程序
  • 春雨的色彩说课ppt课件
  • 美好校园环境策划书范文3篇
  • 显卡的作用是什么
  • 记忆力减退的原因怎么提高
  • 手机如果按键失灵怎么办
  • 吃什么可以记忆力强
  • 高考数学公式总结口诀2017
  • 上海杉达学院学费一年多少
  • 猜你喜欢

  • 如何实现VMware虚拟机上的ubuntu与windows主机共享文件夹
  • 《怪物猎人崛起》御龙翔虫怎么用 御龙操作指南
  • 简易房屋租赁合同
  • 树立文化自信,传承湖湘文化品牌
  • 2019年我的课余生活作文250字范文-实用word文档 (1页)
  • 享受朋友之间的乐趣
  • 国培——你是我心内的一首“歌”
  • 与名师对话2019届高三数学(文)一轮复*:第二章 函数的概念与基本初等函数 课时跟踪训练13 Word版含解析
  • 《穷人》续写_700字初中作文
  • 全等三角形的判定 优秀说课设计1
  • 深圳伟昌兴吸塑制品有限公司(企业信用报告)- 天眼查
  • 黄山开源发展集团有限公司黄山区分公司企业信用报告-天眼查
  • 河南瑞泰置业有限公司(企业信用报告)- 天眼查
  • ACM知识点总结【杂】
  • 2019年重型汽车行业初步研究报告.ppt
  • 城市污泥的土地利用对黑麦草理化指标和品质的影响
  • 常德市武陵区南坪腰路铺砖厂企业信用报告-天眼查
  • 2019年中国芝麻油行业发展调研及投资建议指导报告目录
  • 2008高考英语听力试题
  • 桥梁钻孔灌注桩施工技术交底
  • 重庆出入境检验检疫局位置:重庆市江北区 红黄路8号
  • 第二届“台湾黑松油切麦茶杯”乒乓球公开赛完美闭幕新闻稿——报纸版
  • 20XX年实*美工工作总结范文
  • 2019工程部年度工作总结范文
  • 读《蜜蜂颂》有感作文400字
  • 在采购管理过程中,怎样进行供应商管理?
  • 推拿疗法治疗延迟性肌肉酸痛概况-中国康复医学杂志
  • AD18画板子 DAY1:手画封装库
  • 拨开社区矫正理论的迷雾——宽严相济刑事政策视域下的考察
  • 文化传承与创新单元分层突破
  • JMM重排序与happens-before
  • JJ170预制板块面层检验批质量验收记录表
  • 【教育学*文章】XX年经济作物工作总结暨XX年工作计划
  • JJ冀教版 六年级英语 下册第二学期春(教学设计 教案)Unit 2 Lesson 9 Eat More Vegetables and Fruit!
  • 2016-2021年中国及全球醋酸胍那苄行业市场发展战略分析及投资前景专项预测报告
  • 2021年扬州大学兽医学院829生物化学(自)考研强化模拟五套题
  • 【教学设计】被减数是6_7的减法
  • 中老年妇女健康知识
  • 中药保健品营销策划
  • [精品]世界500强企业状况分析
  • 学校女生节活动策划方案范文
  • 女生这样吃可以年轻20岁(中医良言)(精)
  • 电脑版