b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mapreduce的工作原理_mapreduce计算原理_mapreduce的作用

电脑杂谈  发布时间:2017-03-13 14:37:59  来源:网络整理

我们为什么不能使用来对大量磁盘上的数据进行批量分析呢?我们为什么需要MapReduce?

这些问题的答案来自磁盘的另一个发展趋势:寻址时间的提高远远慢于传输速率的提高。寻址是将磁头移动到特定磁盘位置进行读写操作的过程。它是导致磁盘操作延迟的主要原因,而传输速度取决于磁盘的带宽。

如果数据的访问模式汇总包含大量的磁盘寻址,那么读取大量数据集所花的时间势必会更长(相较于流式数据读取模式),流式读取主要取决于传输速率。另一方面,如果系统只更新一小部分记录,那么传统的B树更有优势(关系型中使用的一种数据结构,受限于寻址的比例)。但系统更新大部分数据时,B树的效率比MapReduce低的多,因为需要使用“排序/合并”来重建。

1.1.MapReduce与RDBMS的区别

在许多情况下,可以将MapReduce视为关系型管理的补充。两个系统之间的差异如下图:

MapReduce比较适合以批处理的方式处理需要分析整个数据集的问题,尤其是即席分析(实时的分析,响应速度是第一考虑因素)。RDBMS适用于“点查询”和更新,数据集被索引后,系统能够提供低延迟的数据检索和快速的少量数据更新。MapReduce适合一次写入、多次读取数据的应用,而关系型更适合持续更新的数据集。

MapReduce和关系型之间的另一个区别在于他们所操作的数据集的结构化程度。结构化数据是具有既定格式的实体化数据。另一方面,半结构化数据比较松散,虽然可能有格式,但经常被忽略,所以它只能用作对数据结构的一般知道。非结构化数据没有什么特别的内部结构。MapReduce对于非结构化或半结构化数据非常有效,因为在处理数据时才对数据进行解释。换句话说:MapReduce输入的键和值并不是数据固有的属性,而是有分析数据的人员来选择的。

关系型数据往往是规范的,以保持其数据的完整性且不含冗余。规范化给MapReduce带来了问题,因为它使记录读取成为异地操作,然而MapReduce的核心假设之一就是,他可以进行(高速的)流式读写操作。

1.2.MapReduce优势

MapReduce是一种线性可伸缩的编程模式。程序员编写两个函数,分别是Map函数和Reduce函数---每个函数定义一个键/值对集合到另一个键/值对集合的映射。这些数据无需关注数据集及其所用集群的大小,因此可以原封不动的应用到小规模数据集或的数据集上。更重要的是,如果输入的数据量是原来的两倍,那么运行的时间也需要两倍。但是如果集群是原来的两倍,作业的运行仍然与原来的一样快。SQL查询一般不具备该特性。

MapReduce会尽量在计算节点上存储数据,以实现数据的本地快速访问。数据本地化特性是MapReduce的核心特征,并因此而获得良好的性能。意识到网络带宽是数据中心环境最珍贵的资源之后,MapReduce通过显示网络拓扑结构尽力保留网络带宽。注意,这种排列方式并未降低MapReduce的计算密集型的数据分析能力。

MapReduce让程序员无需考虑系统的部分失效问题,因为自身的系统实现能够检测到失败的map或Reduce任务,并让正常运行的机器重新执行这些失败的任务。MapReduce采用无共享框架,可以实现失败检测,这意味着各个任务之间彼此独立。因此,从程序员的角度来看,任务的执行顺序是无关紧要的。

2.认识MapReduce2.1.MapReduce工作过程

MapReduce作业(job)是客户端需要执行的一个工作单元:它包括输入数据、MapReduce程序和配置信息。Hadoop将作业分成若干个小任务(task)来执行,其中包括两类任务:map任务和reduce任务。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-37299-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...