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:

hadoop细节 -> 持续更新的更多相关文章

  1. Java的一些良好习惯及细节------持续更新中...

    1.在做条件判断时,不要将变量放在判断符的左边,这样做可以防止出现空指针异常,以字符串比较为例: String name = "Tom"; //这种方式不推荐,如果变量name为空 ...

  2. Netty 面试题 (史上最全、持续更新)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  3. React Native之坑总结(持续更新)

    React Native之坑总结(持续更新) Genymotion安装与启动 之前我用的是蓝叠(BlueStack)模拟器,跑RN程序也遇到了一些问题,都通过搜索引擎解决了,不过没有记录. 但是Blu ...

  4. RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)

    Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和 ...

  5. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  6. Pig语言基础-【持续更新中】

      ***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.***   Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...

  7. 【 js 基础 】【 源码学习 】源码设计 (持续更新)

    学习源码,除了学习对一些方法的更加聪明的代码实现,同时也要学习源码的设计,把握整体的架构.(推荐对源码有一定熟悉了之后,再看这篇文章) 目录结构:第一部分:zepto 设计分析第二部分:undersc ...

  8. 【持续更新】JavaScript常见面试题整理

    [重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...

  9. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

随机推荐

  1. python skimage图像处理(一)

    python skimage图像处理(一) This blog is from: https://www.jianshu.com/p/f2e88197e81d 基于python脚本语言开发的数字图片处 ...

  2. 028_Mac急救箱快捷键

    一. (1) 1.shift + control + option + 电源键 +长按10秒 "重置系统管理器" 2.option + command + P + R + 按1下电 ...

  3. centos7.6使用 supervisor 对filebeat7.3.1进程进行管理

    centos7.6使用 supervisor 对filebeat7.3.1进程进行管理 Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX ...

  4. Java13新特性 -- switch表达式动态CDS档案(动态类数据共享归档)

    支持在Java application执行之后进行动态archive.存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类.也就是说,在Java 13中再使用AppCDS的时候,就不 ...

  5. GoldenGate 19.1 发布

    GoldenGate 19.1 新特性 For the Oracle Database ➢ Oracle Database 19c Support 支持从Oracle DB 19c抽取和投递数据,包括 ...

  6. PHP 1000个进程同时利用file_put_contents的追加FILE_APPEND模式

    1000个进程同时利用file_put_contents的追加FILE_APPEND模式,不会出现写入的数据被覆盖? <?php // fork出1000个进程查询,内存大,cpu屌,1000个 ...

  7. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(二)使用Onvif协议进行设备RTSP地址获取

    背景介绍 EasyNVR最大的优势就是兼容性,通过RTSP协议接入传统网络摄像机.NVR.编码器等,使用RTSP协议接入能兼容市面上绝大多数网络摄像机等源设备,最大程度的提高整体方案的硬件设备的兼容性 ...

  8. 微信小程序tabBar底部导航 不显示问题解析

    2019年十月八号 转藏: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wy_Blo ...

  9. Ipinstall软件工具-可视对讲

    Ipinstall软件工具操作说明 安居宝Ipinstall软件工具是用于联网型对讲系统中网络设备的属性及参数修改,该设备在系统中是否能正常运行,其属性和参数的设置起着决定性的作用, 然而设备的属性. ...

  10. 【Spring Cloud学习之三】负载均衡

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 主流的负载均衡技术有nginx.LVS.HAproxy.F5,Spring Clou ...