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步开始执行

  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:

最新文章

  1. Java Class类及反射机制
  2. C#: DataBase
  3. Mysql学习笔记(一)
  4. centos mongodb安装及简单实例
  5. C预处理,条件编译
  6. Linux 源码安装apache 与常见错误解决
  7. Android学习5—布局简介
  8. 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
  9. Eclipse Maven插件无法搜索远程库
  10. Struts1.x下使用jquery的Ajax获取后台数据
  11. Matches Puzzle Game
  12. [转]Axis2创建WebService实例
  13. C# 值类型,引用类型区别
  14. Linux 开放端口
  15. go 的正则表达式
  16. vue之v-on
  17. 第十章 优先级队列 (b2)完全二叉堆:插入与上滤
  18. 【教程】教你解决“Windows 资源保护找到了损坏文件但无法修复其中某些文件”的问题【转载】
  19. AsyncTask的缺陷
  20. 使用PD进行数据库建模时的问题

热门文章

  1. rpm 打包:ERROR: No build ID note found in xxxx
  2. 记一次 HttpClient 死锁问题
  3. No Suitable Driver Found For Jdbc
  4. MySQL:实现cumsum(累加)的功能
  5. 010 vue使用render方法渲染组件
  6. 009 webpack将ES高级语法进行装换
  7. CentOS 使用官方源yum安装最新nginx版本
  8. 设置驱动的方法(Chrome 亲测ok)
  9. Redis 分布式锁的正确实现方式(Java版)[转]
  10. git clone 某个链接时候报错Initialized empty Git repository in 不能克隆