hadoop细节 -> 持续更新

Hdfs:

hdfs写流程:

 

 

  1. 客户端经过DistributedFileSystem请求namenode上传文件
  2. Namenode进行检查,好比父路径   文件自己,是否容许上传
  3. Namenode相应信息给client  是否容许上传
  4. 请求上传第一个block块
  5. Namenode根据元数据信息判断,须要在哪些datanode上上传,返回datanode列表,根据复本数返回datanode节点数。
  6. 客户端经过FSDataOutputStream创建通道,客户端先与datanode1创建通道,data1与data2,data2与data3创建通道
  7. 响应通道的应答消息
  8. 上传block块,在客户端会造成数据队列(block以pachage为单位进行划分),以pakage为单位(默认大小为64k)进行上传
  9. 客户端先传给data1,先存储在data1的内存中,而后再写入磁盘。Data1将package传给data2  ,data2传给data3
  10. 10.响应pachage应答消息,响应给客户端,从数据队列中删除package

                    block上传完成当上传其余的block块的时候  从4步开始执行  node

  11.最后客户端通知namenode上传完成了缓存

hdfs 读流程:

  

 

  1. 客户端经过DistributedFileSystem与namenode进行通讯,请求下载文件
  2. Namenode经过查找本身的元数据信息,得到文件对应的block块及其位置信息,响应给客户端
  3. 客户端经过网络拓扑,选择一台datanode(就近原则),进行请求读取,请求读取的时候经过FSDataInputStream
  4. 客户端以package为单位进行读取,先写入到客户单的本地的缓存中(内存中),而后同步到磁盘。

 

Yarn:

    resourcemanager的基本职能归纳:服务器

  • 与客户端进行交互,处理来自于客户端的请求,如查询应用的运行状况
  • 启动和管理各个应用的ApplicationMaster,而且为ApplicationMaster申请第一个Container用于启动和运行失败时将它从新启动
  • 管理NodeManager,接受来自NodeManager的资源和节点健康状况汇报,并向NodeManager下达管理资源命令,例如kill掉某个container
  • 资源管理和调度,接受来自ApplicationMaster的资源申请,而且为其进行分配。这个是他的最重要的只能。
MapReduce1 Yarn
Jobtrack 资源管理器(Resourcemanager)、applicationMaster、时间轴服务器
Tasktrack   节点管理器(nodemanager)
slot 容器(container)

 

 

MapReduce:

相关文章
相关标签/搜索