2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 深入解析MapReduce架构设计与实现原理–读书笔记(1)概述

深入解析MapReduce架构设计与实现原理–读书笔记(1)概述

时间:2018-09-18 09:14:02

相关推荐

深入解析MapReduce架构设计与实现原理–读书笔记(1)概述

数据库|mysql教程

深入,解析,MapReduce,架构,设计,实现,原理,读书

数据库-mysql教程

电影网站源码怎么做的,如何汉化vscode软件,ubuntu安装dw,部署jsp到tomcat,发光 爬虫,php 语言结构,seo到底干什么,网站flash动画如何下载视频网站模板,金融类官网模板lzw

董西成的书,非常不错。买了有一段时间了,最近才有时间好好观摩一下,而且我们的hadoop集群也是在0.20的版本,还是比较适合的,而且这本书也介绍了部分1.0和2.0的MR框架,是很不错的学习资料。买本书吧,支持一下董大侠。也不贵,打完折页才40多吧。尤其最

简单 仓库管理系统 源码,vscode没有调试按钮,ubuntu清内存,深入剖析tomcat代码,sqlite自定义路径h5,爬虫停止,物业管理系统 php,济宁泰安seo优化公司,淘宝客网站采集器,superadmin模板lzw

java后台源码,vscode加载依赖,ubuntu系统如何更换网卡,tomcat 密码泄露,查询 sqlite3,heidisql命令提示插件,前端 企业管理框架,厕所爬虫有那些,php 截取 字符串,杭州SEO招聘工作,网站源码密码文件,中式音乐网页模板,留学网站模板下载,jquery 页面放大,推广员管理系统源码,服务器如何搭建php程序源码lzw

董西成的书,非常不错。买了有一段时间了,最近才有时间好好观摩一下,而且我们的hadoop集群也是在0.20的版本,还是比较适合的,而且这本书也介绍了部分1.0和2.0的MR框架,是很不错的学习资料。买本书吧,支持一下董大侠。也不贵,打完折页才40多吧。尤其最近当当,京东都有活动,还是超级实惠的。知识无价!

这本书深入的解析了MR的原理实现,对于我们这些平时只具体应用的,有很好的提纲挈领的作用,可以指导我们把code写的更好,更全。

分布式编程方法

1.迭代(iteration)。遍历输入数据,并将之解析成key/value对。

2.将输入key/value对映射(map)成另外一些key/value对。

3.依据key对中间数据进行分组(grouping)。

4.以组为单位对数据进行归约(reduce)。

5.迭代。将最终产生的key/value对保存到输出文件中。

编程模型分层

编程模型位于应用程序层和MapReduce执行器之间,可以分为两层。

第一层是最基本的JavaAPI,主要有5个可编程组件。

InputFormat,Mapper,Partitioner,Reducer,OutputFormat。

第二层是工具层,位于基本Java API之上,主要是为了方便用户编写复杂的MapReduce程序和利用其它编程语言增加MapReduce计算平台的兼容性而提出的。

JobControl:

方便用户编写有依赖关系的作业,作业构成一个有向图。DAG(directed Acyclic Graph)作业。

ChainMapper/ChainReducer:

方便用户编写链式作业,即在Map或Reduce阶段存在多个Mapper (MAPPER + REDUCER MAPPER*)

Hadoop Streaming:

方便用户采用非JAVA语言编写作业,允许用户指定可执行文件或者脚本作为Mapper/Reducer

Hadoop Pipes:

专门为C/C++程序员编写的MapReduce程序提供的工具包。

新旧MapReduceAPI比较

1.存放位置:新版API存放在org.apache.hadoop.mapreduce包及其子包中。

2.接口变为抽象类:

抽象类是一种较宽松的约束协议,它可以为某些方法提供默认实现。而继承类则可选择是否重新实现这些方法。

新API将InputStream,OutputStream,Mapper,Reducer,Partitioner由接口变为抽象类。

3.上下文封装:

新版API将变量和函数封装成各种上下文(Context)类。使得API具有更好的易用性和扩展性。

JobContext: Job的基本信息

TaskAttemptContext:Task的基本信息

TaskInputOutputContext:封装了Task的各种输入输出操作

MapContext和ReduceContext:分别封装了Mapper和Reducer对外的公共接口

基本概念

1.序列化

结构化对象转变为字节流以便于通过网络进行传输或写入持久存储的过程。反序列化指的是将字节流转为结构化对象的过程。

MR中序列化的主要作用为:永久存储和进程间通信。

Writable,Comparable,WritableComparable

2.Reporter参数

Reporter是MR提供给应用程序的工具。应用程序可使用Reporter中的方法报告完成进度(progress),设定状态消息(setStatus)以及更新计数器(incrCounter)。

Reporter是一个基础参数。MR对外提供的大部分组件,均在其主要方法中添加了该参数。

Interface:Progressable,Reporter

3.回调机制

回调机制是一种常见的设计模式。它将工作流内的某个功能按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。

例如:

MapReduce给用户保留了接口Mapper,当用户按照自己的应用程序实现了MyMapper后,Hadoop MapReduce运行时环境会将输入数据解析成key/value对,并调用map()函数迭代处理。

Hadoop MapReduce Runtime

MapTask

this.mapper = ReflectionUtils.newInstance(job.getMapperClass(),jobs);迭代处理while(input.next(key,value)){mapper.map(key,value,output,reporter);}结束

原文地址:深入解析MapReduce架构设计与实现原理–读书笔记(1)概述, 感谢原作者分享。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。