大数据生态之 ——HDFS

大数据生态之-----HDFS

HDFS工作机制

客户端上传文件时,一方面由datanode存储文件内容,另一方面有namenode负责管理block信息(切块大小,副本数量,位于datanode上的位置信息)

一丶namenode的工作职责:

  1. 记录元数据

a) 文件的路径

b) 文件的副本数量

c) 文件切块大小

d) block块信息

e) block块的位置信息

2. 响应客户端请求

3. 平衡datanode上block文件块的存储负载

datanode启动后会向namenode汇报自身所持有的block文件块的相关信息,客户端上传文件时,namenode会优先分配剩余空间较多的datanode供客户端使用。当有新的datanode节点加入集群时,namenode也会通知旧的datanode节点转移自身一部分block块到新的datanode上

二丶namenode元数据管理机制

  1. namenode上完整的元数据存储在内存中
  2. 内存中的元数据也会序列化到磁盘上生成fsimage文件,整个生命周期中只序列化一次
  3. namenode会对引起元数据变化的客户端操作进行日志记录
  4. secondarynamenode定期从namenode上下载编号较新的日志,将fsimage反序列化以后和解析的日志进行合并,合并完成后生成一个新的fsimage并上传到namenode上覆盖掉原来的fsimage文件
  5. 这样就保证了namenode上的fsimage文件一直处于一个较新的状态,而且namenode上的日志文件数量也处于一个可控范围之内。

三丶datanode的工作职责

1. 接收客户端上传的block块

2. 帮助客户端获取指定的block块

3. 定期向namenode汇报自身所持有的block信息

四丶文件读写流程

4.1写文件流程

  1. 客户端向namenode发送文件上传请求(携带文件名和路径信息)
  2. namenode接收到客户端请求以后会从查询元数据中进行查询
  3. 如果文件不存在namenode会向客户端返回允许上传响应
  4. 客户端接收到namenode允许上传响应后会发送上传的block块信息,比如需要上传一个block,存储3个副本
  5. namenode接收到请求以后会从集群中随机挑选三台可用的datanode并其地址将blockid一起发送给client
  6. 客户端接收到namenode响应后会选取最近的那台datanode发送block块上传请求和存储该block块的三台datanode的地址信息
  7. 第一台datanode接收到请求以后会向第二台datanode发送建立block传输pipeline请求,第二台datanode会向第三台datanode发送建立block传输pipeline请求
  8. 第三台datanode准备完毕后会向第二台datanode发送准备就绪响应,第二台datanode准备完毕后会向第一台datanode发送准备就绪响应,此时三台datanode都以做好准备等待接收block块,第一台datanode会向客户端发送允许上传响应
  9. 客户端接收到datanode发送的允许上传响应后会利用FileInputStream读取文件并利用SocketOuputStream将文件发送给第一台datanode,该datanode使用SocketInputStream接收数据的同时会通过block pipeline将数据发送到下一台datanode上,三台datanode几乎会同时完成block的接收工作。
  10. 后续block块的发送重复4-9步骤

4.2读文件流程

  1. Client向name发送文件下载请求(含文件名和HDFS上存储的路径信息)
  2. namenode从元数据中进行查找并将block所在的datanode地址响应给Client
  3. 客户端接收到block块位置信息后,会选择距离最近的datanode发送block读取请求,
  4. datanode接收到client发送的block读取请求以后会将数据发送给client

client接收到datanode发送的数据以后会存储到本地磁盘并继续请求下一个block块并根据偏移量与第一块接收到的block块文件进行合并,最终获取完整文件。

原文地址:https://www.cnblogs.com/lsbigdata/p/10127478.html

时间: 2024-07-31 08:33:14

大数据生态之 ——HDFS的相关文章

从0到1构建大数据生态系列1:数据蛮荒中的拓荒之举

缘起 我们都知道,当前大数据的需求基本属于遍地开花.无论是帝都.魔都,还是广州.深圳,亦或是全国其他各地,都在搞大数据:不管是不到百人的微小公司,还是几百上千人的中型公司,亦或是上万的大型公司,都在需求数据岗位. 大公司暂且不论,他们一切都走在前头.那么,对于中小型企业来说,开始尝试以数据的思维去思考问题,开始涉足大数据领域,这就是一个从0到1的过程了. 有(bu)幸(xing),近半年来,我亲自见证以及亲身体会到了这个过程,或者至今仍然在完善1这个过程中.期间,有痛苦有坑.有喜悦有成功.有沉静

追本溯源 解析“大数据生态环境”发展现状(CSDN)

程学旗先生是中科院计算所副总工.研究员.博士生导师.网络科学与技术重点实验室主任.本次程学旗带来了中国大数据生态系统的基础问题方面的内容分享.大数据的发展越来越快,但是对于大数据的认知大都还停留在最初的阶段——大数据是一类资源.一类工具,其实“大数据”更多的体现的是一个认知和思维,是一种战略.认知和文化. 以下为分享实录全文: 一年多来,通过组织中国大数据技术大会.CCF大数据学术会议以及各类大大小小的应用峰会与学术论坛,结合我们科学院网络数据科学与技术重点实验室所承担的与大数据相关的重大基础课

大数据生态之数据处理框架探索

数据处理框架 数据处理是一个非常宽泛的概念,数据处理框架在数据架构中,主要是用于数据移动和分析这两大功能当中.对于数据移动,有离线数据移动和实时数据移动,也可以叫做是批量数据移动和流式数据移动.而对于分析这一块,有离线数据分析和实时数据分析,也可以称作是批量数据分析和流式数据分析.离线和实时,批量和流式,针对这两种不同的形式,就出现了多种不同的数据处理框架.有批量的数据处理框架,有流式的数据处理框架,也有批流融合的框架. 批量数据处理框架 批量数据处理框架最经典的就是 mapreduce 了,这

大数据 --> 分布式文件系统HDFS的工作原理

分布式文件系统HDFS的工作原理 Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句

【Hadoop】如何形象描述大数据生态?

作者:千岁大王链接:https://www.zhihu.com/question/27974418/answer/39845635来源:知乎著作权归作者所有,转载请联系作者获得授权. Google内部早就开始玩大数据,发现时代跟不上他们的节奏,担心技术后继无人,于是发表了三篇论文(搜下gfs bigtable mapreduce).有几个工作不饱和,整天没事干的人,想搞个开源的网页搜索(lucene nutch).看到那三篇论文被震惊了,于是开始依葫芦画瓢,在一个二流的互联网公司(Yahoo)开

大数据相关概念和hdfs

大数据 概述 大数据是新处理模式才能具备更多的决策力,洞察力,流程优化能力,来适应海量高增长率,多样化的数据资产. 大数据面临的问题 怎么存储海量数据(kb,mb,gb,tb,pb,eb,zb) 怎么对数据进行降噪处理(对数据进行清洗,使得数据变废为宝,提取有用的数据,减少不必要的数据资源空间的释放) 处理方案 hadoop 是一种分布式文件存储系统来解决存储的问题,其中hdfs用来解决数据存储问题,mapReduce来解决如何进行建造处理 hadoop是什么? 由来? 根据google发布的3

构建企业大数据生态的关键在于 , 打通内部数据!

一个企业要想保持长远的发展,在市场中成为一个强有力的生命个体,必然要注重企业组织之间的协调.合作关系,与环境协同进化,也就是所谓的企业生态系统.而企业信息化或数据化作为管理的重要支撑,是这生态系统中的关键一环. <2015中国大数据应用前沿调研报告>指出,在对于"贵公司认为打造生态系统的重要性在何处"调查时,接近一半的受访企业选择了"打通企业内部部门数据,更好的服务业务增长".对于"贵公司为全面实现大数据战略首要的关注点",排名第二的

大数据学习之四——HDFS

1.Hadoop与HDFS的关系 Hadoop实现了一个分布式文件系统,即Hadoop Distributed File System,简称HDFS.对外部客户机而言,HDFS就像一个传统的分级文件系统,所以,很多时候,我们也叫它DFS(Distributed File System).可以理解为HDFS是Hadoop中的一个部件. 文件系统由三部分组成:文件管理软件.被管理文件.文件存储结构 2.HDFS存储(流处理,块存储) HDFS以流处理访问模式来存储文件的.分布化的文件系统会因为分布后

大数据学习之HDFS基本API操作(上)06

1 package it.dawn.HDFSPra; 2 3 import java.io.FileNotFoundException; 4 import java.io.IOException; 5 import java.net.URI; 6 import java.net.URISyntaxException; 7 import java.util.Arrays; 8 9 import org.apache.hadoop.conf.Configuration; 10 import org.