Hadoop学习四
来源:互联网 发布:工程进度计划编制软件 编辑:程序博客网 时间:2024/06/05 19:08
MapReduce的主要体系结构
1、Client
用户编写的MapReduce程序通过Client提交到JobTracker端,同时,Client提供一些接口供用户查看Job的运行情况。
2、JobTracker
JobTracker负责资源监控和作业调度
JobTracker监控所有的TaskTracker和job健康情况,一旦发现有异常,就将作业迁移到别的节点上;
JobTracker会跟踪任务的执行进度,资源的使用情况,并将这些信息上报到任务调度器TaskScheduler,TaskScheduler会在资源空闲的时候选择执行任务。
3、TaskTracker
TaskTracker会周期性的向JobTracker发送资源使用情况和任务执行进度,同时接收来自JobTracker的指令,如启动任务,杀死任务等;
TaskTracker使用slot等量分割本节点资源,Task只有获取slot后才能被执行,而Hadoop的调度就是将slot分配给不同的task。slot分为Map slot和Reduce slot。
4、Task
Task分为Map Task和Reduce Task,由TaskTracker启动,
5、MapReduce采用Master/slave架构,Master上运行的是JobTracker,slave上运行的是TaskTracker。
6、Map函数是每一个键值对输入,输出一堆的键值对;Reduce函数是key和一堆的值,输出是key和value的集合。
7、MapReduce的工作流程
不同的map任务之间是不会通信的;
不同的Reduce任务之间也不会通信;
用户不能显示的从一台服务器像另一台服务器发送消息,MapReduce值间的通信是依靠框架自身的。
首先,InputFormat模块会读取HDFS文件,并对数据文件进行逻辑上的切分为split。接下来由Record Reader根据spit信息去底层读取数据,并输出key-value作为map函数的输入;
这时候,有很多的键值对,需要经过shuffle过程,形成Reduce的输入;
Reduce处理后的结果经过OutputFormat模块,输出到HDFS中。
8、split
split是对HDFS block的逻辑分割,Hadoop为每一个分片创建一个map任务;分片的大小理想情况下是块的大小。
9、Reduce任务数量取决于Reduce任务槽的数量,通常Reduce任务的数量要略小于任务槽,流出一些处理系统资源。
10、shuffle过程的简介
RR读取split输出的key-value并不是直接写入磁盘,而是防暑缓存中,当缓存满后,发生溢些,写入磁盘,并清空缓存。但是在写入磁盘时,会对键值对进行分区、排序、合并;多个磁盘文件会归并为一个大的磁盘文件,并通知相关的Reduce任务取走。Reduce会从服务器上拉取自己的数据到本地,然后执行归并、合并,输入Reduce函数,处理完后输出到HDFS。
- hadoop学习(四)
- Hadoop学习四
- Hadoop学习笔记四--Hadoop中的流
- Hadoop学习四:hadoop分布式环境搭建
- hadoop 学习笔记 四 -----hadoop I/O
- 一步一步学习hadoop(四)
- Hadoop学习之MapReduce(四)
- Hadoop学习之MapReduce(四)
- 【hadoop】Hadoop学习笔记(四):Hadoop中的streaming
- Hadoop HDFS源码学习笔记(四)
- hadoop API 学习小结(四)
- Hadoop学习笔记(四):Shuffle阶段
- hadoop学习(四)--------升级为spark集群
- Hadoop学习笔记(四):HBase
- Hadoop学习笔记(四)---HDFS概述
- Hadoop 学习笔记四 Hive基本知识
- Hadoop学习(四)— MapReduce入门
- Hadoop学习笔记(四)YARN
- Spring声明式事务配置(xml配置与注解配置)
- 对于ES6新数据类型Symbol()的理解和学习
- Redis (error) NOAUTH Authentication required.解决方法
- java只使用try和finally不使用catch的原因和场景
- 这篇文章主要介绍了python中的实例方法、静态方法、类方法、类变量和实例变量浅析,需要的朋友可以参考下
- Hadoop学习四
- 淘淘商城系列——购物车实现分析及工程搭建
- 转售联通物联网卡的盈利可能性探讨
- 红黑树的移除节点操作图解--转载
- 通过SSH克隆远程仓库(GitLab)到本地
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍
- linux下安装Redis
- Java笔记
- 线性代数的本质-学习笔记