浅谈HDFS和MapReduce-YARN的运行原理

来源:互联网 发布:手机视频捕捉软件 编辑:程序博客网 时间:2024/05/22 01:15


HDFS的运行原理

写操作:
首先客户端给namenode发送一条写的请求,请求中包括上传文件的大小,名称等信息
namenode将会把该文件分割成多个块,备份,然后分析把多个部分应该分在那些datanode中,并记录对应的位置,(假设)合成一张表(即元数据),返回给客户端
当然,namenode自己也会把存储信息保存一份在内存中,同时另一个namenode将会把存储信息(即元数据)保存到本地
当客户端拿到存储信息时,将会选择离自己(客户端)最近的一台datanode进行写的操作
读操作
首先客户端给namenode发送一条读的请求,请求中包括所要读取文件的名称等信息
namenode将会查找(从 在上面提到的存储信息表中(即元数据)所记录的信息查找)客户所要读取的文件的存储位置,
把客户所要读取的文件放在哪些datanode的位置信息返回给客户端
然后客户端将从该datanode读取数据

NameNode  是主节点,存储文件的元数据如文件名,文件目录结构,
 文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等
DataNode  在本地文件系统存储文件块数据,以及块数据的校验和


Secondary NameNode 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照

YARN框架
MapReduce运行在YARN上的原理
当客户端提交运行job程序请求给ResourceManager
ResourceManager会随机选择一台NodeManager,启动Application Manager进程负责这个job的管理
NodeManager中的Application Master会向Application Manager请求分配资源
Resource Scheduler 将会把cpu 磁盘 内存  等封装成container 传输给NodeManager 中的Application Master
NodeManager 将会启动Task进程并传递Container资源
NodeManager将会把所有Task进程处理的结果返回给Application Master
Application Master 会将总结果返回给Application Manager

ResourceManager 
处理客户端请求
启动/监控 Application Master
监控NodeManager
资源分配与调度
NodeManager
单个节点上的资源管理
处理来自ResourceManager的命令
处理来自Application Master的命令
ApplicationMaster
数据切分
为应用程序申请资源,并分配给内部任务
任务监控与容错
Container 
对任务环境的抽象,封装了cpu,内存等多维资源以及环境变量,启动命令等任务运行相关的信息
原创粉丝点击