Hadoop之HDFS架构功能剖析说明

来源:互联网 发布:nginx 返回数据截断 编辑:程序博客网 时间:2024/06/11 22:35

HDFS系统架构图层面解析

Hadoop Distributed File System (HDFS):分布式文件系统

*分布式应用分为主从架构:主节点NameNode(一个)从节点:DateNode(多个)

*HDFS服务组件:namenode,datanode,SecondaryNamenode

*Hdfs存储形式:存储在HDFS上的文件是以块(block)的形式存储的,Hadoop2.x的版本中默认块的大小是128M。

HDFS服务功能

*Namenode:主节点,存储文件的元数据(文件名,文件目录结构,文件属性(生成时间,副本数,文件权限等))

,以及每个文件的块列表和块所在的DataNode等。

*DataNode:在本地文件系统存储文件数据,以及块数据的校验和(长度、创建时间、CRC32校验和)。

*Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。定时的将NameNode的镜像文件和编辑日志文件合并为一个文件,叫做新镜像文件。


*************************************************************

HDFS中有两个基本组成

是由‘一台Namenode服务器和多台DataNode服务器组成’

A) NameNode:名称节点,用来存储元数据(帮助你快速找到数据块,就是数据块的映射)

HDFS存储:(块操作)是把一个文件从逻辑上分为块,么一个块默认的存储是128M,把这些块依次的存到不同的DataNode服务器上,每个DataNode上存了哪些块是记录在NameNode上的,读取的时候也是首先要去访问NameNode,(NameNode代表每一个几群的访问入口)通过NameNode去找到对应的块文件,NameNode其实就是存储的对应关系元数据。

 

B)  Datanode:数据节点,用来存储真实的数据。

DataNode其实是用来存储数据块的

***注意:当我们吧很多台服务器组成一个HDFS集群以后,我们会去启动一个角色是NameNode和DataNode进程,作为NameNode服务器要去启动对应的的角色

           当某个DataNode服务器启动失败了,他不影响里面的数据访问,比如所有的DataNode服务器内存全部满了,我们可以直接加服务器进去,可以随意添加,互不影响,这就是分布式文件存储系统

 

在集群中我们有很多台服务器,

           有一台服务器启动的是namenode

           其他服务器启动的是DataNode








yarn服务的功能

ResourceManager:处理客户端请求

                      启动/监控ApplicationMaster

                      监控NodeManager

                      资源分配与调度

 ApplicationMaster:数据切分

                      为应用程序申请资源,并分配给内部任务

                      任务监控与容错

NodeManager:单个节点上的资源管理

                      处理来自ResourceManager的命令

                      处理来自ApplicationMaster的命令

 Container:对多任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命 令等任务运行相关信息



MapReduce 如何运行在YARN上



1. 客户端向ResourceManager提交任务。

2. ResourceManager向NodeManager分配一个ApplicationsManager,并找到一个容器生 成一个MR App Mstr。

3. 该应用的管理者向ResourceManager申请资源。

4. 资源申请完毕后,找到NodeManager将容器中的MR App Mstr启动起来。

5. Map任务和Reduce任务启动。

6. Map与Reduce程序运行过程中都要向MR App Mstr提交信息。

7. 当程序运行结束时,应用管理者向ResourceManager提交信息。





0 0
原创粉丝点击