MapReduce整体架构分析
继前段时间分析Redis源代码一段时间之后。我即将開始接下来的一段技术学习的征程。研究的技术就是当前很火热的Hadoop,可是一个Hadoop生态圈是很庞大的。所以首先我的打算是挑选当中的一部分模块,去学习,研究,我就选中了MapReduce。MapReduce最早是由Google公司在04年公布的论文中提出的一种思想,后来被人实现出来。才有了后面的Hadoop的诞生。学习MapReduce的打算一定不会如Redis源代码学习一样。我仅仅会挑出当中一些用的比較多的过程分析。希望能理解的更深吧。跟上次一样。学习一门技术。首先要了解总体,所以我对Hadoop的MapReduce也做了结构分类。首先是一个图形化的标示形式,用关系类图做出的一张图:
内容会比較多。以下给出我花了个把小时整理出的文字功能描写叙述分类,结合图片和文字,理解效果会更好:
MapReduce源代码分析(主要四大模块,others表示父文件夹下的.java文件的总称):
1.org.apache.hadoop.mapred(旧版MapReduceAPI):
(1).jobcontrol(job作业直接控制类)
(2).join:(job作业中用于模仿数据连接处理操作工具)
(3).lib(MapReduce所依赖的工具方法)
|----(1).aggregate(用于数据聚合处理的文件)
|----(2).db(数据库操作相关文件)
|----(3).others
(4).pipes(Hadoop MapReduce的C++接口代称)
(5).tools(就包括了一个MRAdmin文件。用于连接connect操作,新版本号中已无此文件)
(6).others
2.org.apache.hadoop.mapreduce(新版MapReduceAPI):
(1).example(存放执行Hadoop作业的样例)
(2).lib(新版MapReduce所依赖的工具方法):
|----(1).aggregate(用于数据聚合处理的文件)
|----(2).db(数据库操作相关文件)
|----(3).others
(3).security(Hadoop1.0版本号中新加入的关于安全方面的代码)
|----(1).token(用于安全检測的token验证)
| |----(1).delegation(token文件夹下的代理,委派token)
| |----(2).others
|----(2).others
(4).server(Hadoop服务端的功能。主要包含jobTracker,taskTracker)
|----(1).jobtracker(任务调度Tracker)
|----(2).tasktracker(任务运行Tracker)
|----(1).userlogs(任务运行的用户日志记录模块)
|----(2).others
(5).split(用于作业job的切割处理类)
(6).others
3.org.apache.hadoop.filecache(文件缓存,用于文件分发):
(1).DistributedCache.java(将job指定的文件,在job运行前,先行分发到task运行的机器上)
(2).TaskDistributedCacheManager.java(即Job ID、Job Conf即配置參数、Job配置文件路径、该Job包括的任务集合(当前TaskTracker内的)以及一些用户权限等信息)
(3).TrackerDistributedCacheManager.java(,用来管理该机器上全部task的cache文件)
4.org.apache.hadoop---mapreduce-default.xml:
主文件夹下的MapReduce的默认文件,包含地址port号等的配置。
上述的全部内容都是我经过总结所得,难免会有所错误,希望大家能从总体上首先掌握MapReduce的架构体系,好逐一击破。有问题能够直接评论指出。兴许我分析过的代码会定时同步到我的github上。地址: https://github.com/linyiqun
MapReduce整体架构分析的更多相关文章
- MapReduce总体架构分析
转自:http://blog.csdn.net/Androidlushangderen/article/details/41051027 继前段时间分析Redis源码一段时间之后,我即将开始接下来的一 ...
- OpenRisc-37-OpenRISC的CPU&core的整体架构分析
引言 前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解.但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSo ...
- WebRTC音视频引擎研究(1)--整体架构分析
WebRTC技术交流群:234795279 原文地址:http://blog.csdn.net/temotemo/article/details/7530504 1.WebRTC目的 ...
- 转: WebRTC音视频引擎研究(1)--整体架构分析
转自: http://blog.csdn.net/temotemo/article/details/7530504 目录(?)[+] WebRTC技术交流群:234795279 原文地址:ht ...
- Spark系列(四)整体架构分析
架构流程图 说明 Driver端流程说明(Standalone模式) 使用spark-submit提交Spark应用程序Application. 通过反射的方式创建和构造一个DriverActor进 ...
- Tomcat整体架构分析
下面让我们来看看Tomcat容器的整体结构: 本文的目的是覆盖这张图中所涉及的主要请求处理组件.而上图中的一些高级主题如集群和安全则不是在本文讨论的范围之内. 本图中,Service, Host, C ...
- 一步步去阅读koa源码,整体架构分析
阅读好的框架的源码有很多好处,从大神的视角去理解整个框架的设计思想.大到架构设计,小到可取的命名风格,还有设计模式.实现某类功能使用到的数据结构和算法等等. 使用koa 其实某个框架阅读源码的时候,首 ...
- jQuery 2.0.3 源码分析core - 整体架构
拜读一个开源框架,最想学到的就是设计的思想和实现的技巧. 废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过, 不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery ...
- MINIX3 内核整体架构回顾及内核定 性分析
MINIX3 内核整体架构回顾及内核定 性分析 12.1 注意事项 由于本文档不对 I/O 文件系统做出分析,所以在此不对 MINIX3 整体做出一个分 析,本章主要是针对内核进程分析.并且这里的模 ...
随机推荐
- SparkContext主构造函数代码提取
这是阅读sparkContext类的代码做的一个笔记.阅读这个类的时候,主要的任务就是搞清楚sparkContext是怎么构造的,java.C#的class的初始化都是放在一个方法中的,而scala的 ...
- light oj 1047-neighbor house
ime Limit:500MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Description The people ...
- Android面试题整理(1)
1.Activity的生命周期 onCreate(Bundle saveInstanceState):创建activity时调用. onStart():activity可见时调用 ...
- HTTP 301 跳转和302跳转的区别
常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh: 301 redirect::301代表永久性转移(Permanently Moved),301重 ...
- 利用MySQL 的GROUP_CONCAT函数实现聚合乘法
MySQL 聚合函数里面提供了加,平均数.最小,最大等,可是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法. 先创建一张演示样例表: CREATE TABLE ` ...
- ReviewBoard安装和配置札记
眼下部门还没有採用Pair Programming那种时时刻刻都在review代码的工作方式,代码Review多採用走查方式,即代码写完后召开一个Code Review的Meeting,集中时间和经验 ...
- 彻底明白Java的IO系统
java学习:彻底明白Java的IO系统 文章来源:互联网 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有 ...
- Android移动view动画问题
http://www.cnblogs.com/eoiioe/archive/2012/08/29/2662546.html Android写动画效果不是一般的麻烦,网上找了好久,终于解决了动画的问题, ...
- MUI 列表页面绑定接口数据
1.我们先看效果 2.功能分析 主要分为3步 数据初始化 下拉刷新 上拉加载 接口数据示例: { "List": [ { "Id": 9, "Orde ...
- img src某个php文件输出图片(回复更改图片readfile读取图片等)
在论坛我们经常看到一回复图片就更改等,这功能是怎么实现的呢,其实更验证码道理相同. 新建文件 randimage.php 加入以下代码: <?php $dir='../../images/'; ...