第五章 大数据平台与技术第11讲 MapReduce编程
在大规模的数据当中,需要分发任务,需要进行分布式的并行编程。Hadoop这样一种开源的大数据分析平台。
Map阶段
Reduce阶段:相同的键把它聚集到一起之后,然后通过Reduce方式把相同的键聚集的元素进行某种运算。比如说累加运算,比如说累乘运算。
两个步骤:一、输入数据,一行一行;二、产生键值对。三、对键值对进行运算。
实际例子当中键值对是什么样子呢?
假设有一个非常大的文件,这个文件无法存到内存,用户想知道这个文件当中每个单词出现的次数。
像这种运算非常适合用Map-reduce方式来完成。
类似的问题:统计popular urls,统计哪些url被用户点击的次数越多。
Map-reduce的一个过程:
主要是顺序的去读取数据,
使用MapReduce:
中间的Group阶段由Hadoop自己来完成。
注意:Map它是分发数据,所以Map的个数一般来说是远远大于reduce的个数。
刚才直接从Map到了Reduce,实际上如果学过循环,学过这种语句的嵌套,实际上在Map里面可以做一定的Reduce,在Map和Reduce里面可以相互地进行嵌套。
再看一个例子:Naturl Join,对两个表进行自然连接。
进行自然连接使用Map-reduce怎么做呢?假设进行自然连接的两张表都非常大,无法存到内存当中。我们逐行读取数据,读到一个a1,b1,我们怎么存成key-value呢?key是什么呢?我们是用什么来实现表的连接呢?我们是用b值相同来实现表的连接,用b这一列来作为我们的key。value就是剩下的列。如果写成b1是key,value是a1,这个a1来自于哪里我也必须存在value里面。
最终形成:key是相同的列的名字,value是剩下的列和表的名字。
所以这种问题非常适合Map-reduce操作,逐行顺序读入,产生键值对,将相同的键值所在的元素进行连接操作,形成最终的自然连接的结果。
参考以下网址的内容:
第五章 大数据平台与技术第11讲 MapReduce编程的更多相关文章
- 互联网大规模数据分析技术(自主模式)第五章 大数据平台与技术 第10讲 大数据处理平台Hadoop
大规模的数据计算对于数据挖掘领域当中的作用.两大主要挑战:第一.如何实现分布式的计算 第二.分布式并行编程.Hadoop平台以及Map-reduce的编程方式解决了上面的几个问题.这是谷歌的一个最基本 ...
- 第五章 大数据平台与技术 第12讲 大数据处理平台Spark
Spark支持多种的编程语言 对比scala和Java编程上节课的计数程序.相比之下,scala简洁明了. Hadoop的IO开销大导致了延迟高,也就是说任务和任务之间涉及到I/O操作.前一个任务完成 ...
- 第五章 大数据平台与技术 第13讲 NoSQL数据库
NoSQL不是不用SQL,是Not only SQL,不仅仅是结构化的查询. NoSQL兴起的原因 在Web2.0时代新浪一分钟可以发送两万条微博,苹果可以下载4.7万次应用. 数据的高并发性,同时有 ...
- 品友互动大数据平台的技术演化 https://www.sohu.com/a/191202836_99982360
品友互动大数据平台的技术演化
- 大数据平台的技术演化之路 诸葛io平台设计实例
如今,数据分析能力正逐渐成为企业发展的标配,企业通过数据分析的过程将数据中的信息提取出来,进行处理.识别.加工.呈现,最后成为指导企业业务发展的知识和智慧.而处理.识别.加工.呈现的过程从本质上来讲, ...
- 大数据笔记(十)——Shuffle与MapReduce编程案例(A)
一.什么是Shuffle yarn-site.xml文件配置的时候有这个参数:yarn.nodemanage.aux-services:mapreduce_shuffle 因为mapreduce程序运 ...
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
- 案例分析:大数据平台技术方案及案例(ppt)
大数据平台是为了计算,现今社会所产生的越来越大的数据量,以存储.运算.展现作为目的的平台.大数据技术是指从各种各样类型的数据中,快速获得有价值信息的能力.适用于大数据的技术,包括大规模并行处理(MPP ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...
随机推荐
- Cascalog了解
Cascalog一种能使在Hadoop上使用Clojure处理数据变得简单直观的工具. Cascalog综合了两大顶尖技术:Clojure和Hadoop,同时让Datalog焕发青春. Cascalo ...
- 嵌入式linux问题杂锦
tftp 在开发板上不能获取共享文件,出现: Permission denied tftp: can't open 'myTcpTest': Permission denied 是因为,我在/sys目 ...
- MySQL出现1030-Got error 28 from storage engine错误
Navicat for MySQL出现1030-Got error 28 from storage engine错误 刚刚还能用这会儿就用不了了,估计是磁盘空间不足引起的! 在根目录/下执行命令:d ...
- pandas之Dataframe转成dict+过滤+index去重
转成字典a = ['key1', 'key2', 'key3']b = ['1', '2', '3']data = pd.DataFrame(zip(a, b), columns=['project' ...
- Hibernate学习3—映射对象标识符(OID)
一.Hibernate 用对象标识符(OID)来区分对象 作如下代码的实验: public class StudentTest { public static void main(String[] a ...
- java代码---indexOf()方法
总结:indexOf(String str,int index)方法.从参数指定位置开始,如果index值超过了字符串长度,则返回-1 package com.a.b; import java.io. ...
- 纯css实现点击事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- temple-html5
ylbtech-HTML5: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回顶部 1 ...
- 【转】Hadoop学习路线图
按照这个路线图来学习即可. 1.M. Tim Jones的三篇文章: 用Hadoop进行分布式数据处理第1部分(入门):http://www.ibm.com/developerworks/ ...
- 【洛谷】P1379 八数码难题(bfs)
题目 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局 ...