- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Google云计算原理 - 上海交通大学计算机科学与工程系(CSE).ppt
MPI(Message Passing Interface) 等并行编程方法缺少对高层并行编程模型和统一计算框架的支持,需要程序员处理许多底层细节, 为此MapReduce在三个层面上做了系统而巧妙的设计构思。
在大数据处理的基本方法上,对相互计算依赖不大的数据采取“分而治之”的处理策略。
借鉴了Lisp语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型和接口。
对于诸多的底层实现和处理细节MapReduce提供了一个统一的计算框架,大大减轻了程序员在编程是的负担。;把小的键值对合并成大的键值对
Map计算过程中所产生的中间结果键值对需要通过网络传输给Reduce节点,大规模的键值对可能会大幅增大网络通信开销,并且降低程序执行速度,为此开采用一个基本的优化方法,即把大量小的键值对合并为较大的键值对。
例如在单词同现矩阵计算中,单词a可能会与多个其他单词共同出现,因而一个Map可能会产生很多个单词a与其他单词的键值对,如下:;a, b 1
a, c 3 a {b:1,c:3, d:5, e:8, f:4}
a, d 4
a, e 8
a, f 4 ;Map计算过程中,系统自动按照Map的输出键进行排序,因此进入Reduce的键值对都是按照key值排序的,但有时希望value也按一定规则排序。
方法1:在Reduce过程中对{value}列表中的值进行
本地排序,但当{value}列表数据量巨大时
必须使用复杂的外排算法,会很耗时。
方法2:将value中需要排序的部分加入到key中,
形成复合键,这样能利用MapReduce系统
的排序功能自动完成排序。
;Hadoop内置的数据类型
BooleanWritable:标准布尔型数值
ByteWritable:单字节数值
DoubleWritable:双字节数
FloatWritable:浮点数
IntWritable:整型数
LongWritable:长整型数
Text:使用UTF8格式存储的文本
NullWritable:当key, value中的key或value为空时使用;自定义数据类型的实现
首先实现Writable接口,以便该数据能被序列化后完成网络传输或文件输入/输出;
其次,如果该数据需要作为key使用,或者要比较数值大小时,则需要实现 WritableComparable接??。
例如将一个三维坐标P(x,y,z)定制为一个数据类型
pubic class Point3D implements WritablePoint3D
{
private float x,y,z;
public void readFields(DataInput in) throws IOException
{……}
public void write(DataOutput out) throws IOException
{……}
};如果Point3D还需要作为主键值使用,或者需要比较大小时,还应该实现WritableComparable接口
pubic class Point3D implements WritableComparablePoint3D
{
private float x,y,z;
public void readFields(DataInput in) throws IOException
{……}
public void write(DataOutput out) throws IOException
{……}
public int compareTo(Point3D p)
{
//具体实现比较当前的this(x,y,z)与p(x,y,z)的位置
//并输出-1,0,1
}
};Hadoop内置数据输入格式和RecordReader
TextInputFormat:是系统默认的数据输入格式,可以文本文件分块逐行读入,读入一行时,所产生的key为当前行在整个文件中的字节偏移位置,而value就是行内容。
KeyValueInputFormat:是另一个常用的数据输入格式,可将一个安照key, value格式逐行存放
您可能关注的文档
- china-co - 北大光华管理学院.ppt
- cisco webex - 全程云办公-全程OM工作平台-一个平台全 ….ppt
- Click to add title - 信息化建设与管理处.ppt
- CMT – Prozess - 河北科技大学大学英语精品课.ppt
- cobas powerpoint template - 贵州省人民医院.ppt
- Comparison & Integration of Western and Eastern ….ppt
- Comparison of online social relations in volume vs ….ppt
- Comparison of Relational database management ….ppt
- Computer Networks and Internets - Pattern ….ppt
- Contact and interconnect - 欢迎访问复旦微电子.ppt
- Hadoop in SIGMOD 2011 - Home, WAMDM, Database ….ppt
- Haier Bidding slides - 【工厂物流咨询规划】 精益生产物 ….ppt
- Hebei University of Science & Technology Chinese ….ppt
- Hive实战 - 中国存储--中国存储门户网站,中国最大的存储资 ….ppt
- HMM词性标注 - 网站首页-南京大学科技处.ppt
- HNC理论概要 - 北京师范大学.ppt
- How to use this template - 贵州产业投资集团.ppt
- HPC Workshop – University of Kentucky May 9, 2007 – ….ppt
- Huawei A&S e-Education Solution Overview - 中国智慧 ….ppt
- Human Resources in Health Care - University of ….ppt
文档评论(0)