MapReduce: Simplified DataProcessingonLargeClusters阅读笔记

论文地址

https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf

一、背景

在阅读这篇论文之前,需要了解以下概念。

1、数据密集型应用 vs 计算密集型应用

数据密集型应用大概就是数据量很大但计算逻辑比较简单地应用,如大数据量的排序。而计算密集型应用则相反,其大部分时间用来做计算、逻辑判断等CPU操作,如一个计算圆周率到小数点后一千位以下的程序就是计算密集型应用。计算密集型应用相关的概念有高性能计算、超级计算、网格计算等。

两者都是基于分布式,但两者又存在区别。传统的计算密集型应用往往通过并行计算方式,在紧耦合的超级计算机上运行少量计算作业,即一个作业同时占用大量的计算机节点。而数据密集型应用则通常是将大量独立的数据分析处理作业分布在松耦合的计算机集群的不同节点上运行,有高度密集的海量数据I/O吞吐需求,并且大部分数据密集型应用都有个数据流驱动的流程。

关于数据密集型应用的知识可以看下面这本书:

https://book.douban.com/subject/30329536/

https://github.com/Vonng/ddia

2、分布式、并行、并发

分布式:与分布式对应的是单机,比如我们的个人PC就可以看成一个单机系统,具有一定的计算、存储等资源。

并行:注意并行与并发的区别

3、摩尔定律的失效;单核CPU向多核CPU的发展

意味着编程方式的转变:由顺序编程转向并行编程

一、什么是MapReduce?MapReduce可以做什么?

二、MapReduce是如何工作的?()

三、MapReduce的编程思想

分而治之

四、MapReduce的优化

猜你喜欢

转载自blog.csdn.net/sinat_30973431/article/details/89453855