- 各个框架之间的关系
hdfs是负责存储数据文件的,MapReduce是负责文件的分析计算,而yarn是负责管理资源的,即整个MapReduce阶段map任务和reduce任务运行所需要的资源。这是这三者之间的关系。
首先文件会上传至hdfs上,这是hdfs阶段,具体就是每份文件都会被切分成默认大小为128M的block块,然后每个block块默认会被存储在三个不同的datanode上,即拥有三个备份。(具体的过程是:client会发出上传文件的请求,namenode响应后,client请求上传第一个block块,namenode会返回给client三个datanode,client请求与datanode建立传输通道,datanode依次应答成功后,client开始把块的数据进行传输(传输是通过bytebuffer流的,为了性能考虑,块的数据是同时写到datanode上的,而不是先写到第一个,再写到第二个上),第一个block块传输完成后,第二块再进行这些操作。)至于hdfs的下载文件(也就是读数据流程是:client发出下载文件的请求,namenode返回元数据,也就是块的存储信息,然后client根据返回的datanode去与对应的block块建立连接,传输block块,下载完成,这里需要注意的是,因为block块有三个备份,client会尽量去读取离他近的datanode上的block块,遵循“彼此近邻”的原则)。
然后就是MapReduce和yarn阶段,因为yarn是负责分配资源的,所以和MapReduce程序是分不开的。我们先讲解MapReduce阶段,MapReduc
hadoop框架之hdfs、MapReduce、yarn的整体大致流程
最新推荐文章于 2024-08-20 07:30:00 发布
本文介绍了Hadoop框架中HDFS、MapReduce和YARN的关系及工作流程。HDFS负责数据存储,MapReduce用于文件分析计算,YARN管理资源。文件上传至HDFS后被切分成128M的block,存储在多个datanode。MapReduce分为split、map、shuffle、reduce和output五个阶段,YARN则负责资源分配与管理。
摘要由CSDN通过智能技术生成