前言 Hadoop / Spark / MapReduce 介绍

一、MapReduce

MapReduce是一种软件框架,可以采用并行、分布式方式处理GB、TB甚至PB级的大数据集,同时他也是在商用服务器集群上完成大规模数据处理的执行框架。实现MapReduce的方法有很多,本书主要关注Apache Spark 和 MapReduce/Hadoop两种实现方法。
MapReduce是一种编程范式,可以利用集群环境的成百上千台服务器实现强大的可伸缩性(在这里,我们谈到的可伸缩性是指横向扩容,比如:DNA测序需要3台服务器用60小时完成,横向扩容到50台后,只需2小时即可完成)。使用MapReduce编程范式时,重点是编写两个函数:
map() 过滤和聚集数据集。
reduce() 根据map()生成的键完成规约、分组和总结。

MapReduce的主要优点在于它的“不共享”数据处理平台,即多个map() 或 reduce() 之间 ,可以互不干扰的并行执行,从而提高大数据的处理效率。
可利用如下例子,对MapReduce原理进行简单示意:
假设我们想要统计一个图书馆的藏书数量,现共有1000个书架,我们要把最后的统计结果报给管理员。
MapReduce的解决方案:
map() 雇佣1000个工人,每个工人统计一个书架的藏书数量;
reduce() 把这些工人的统计结果汇总起来,报给管理员;
MapReduce范式,适用于以下情况:即当我们得到大数据时,可以将大数据分块,并进行独立处理,此时,可利用MapReduce提高大数据处理效率。

二、Hadoop / Spark

Hadoop 和 Spark是两个分布式软件框架。
Hadoop是一个MapReduce框架,在这个框架上可运行map(),combine(),reduce()函数的作业。
Spark不是一个MapReduce框架,不过很容易用来支持MapReduce框架的功能,它提供了一个适当的API可以用来处理map()和reduce()功能。
与Hadoop相比,Spark的API提供了更高层次的抽象,一般,几行Spark代码可能等价于Hadoop的30~40行代码。
与Hadoop相比,Spark作业能够更快的完成,这是因为,对于一个复杂的任务,Spark可在一个作业中设立多个阶段完成,而Hadoop可能要将一个复杂的任务分解为多个任务才能完成。
尽管Hadoop和Spark建立在一个“不共享”范式的基础上,但是,他们也确实支持在所有集群节点上共享不可变的数据结构。
Hadoop主要设计用于MapReduce批处理,他并不是一个理想的“实时处理解决方案”,相比,Spark是一个顶级的Apache项目,非常适合近实时处理。
Hadoop和Spark支持容错,任何结点的宕机都不会丢失所需的计算结果。

Hadoop和Spark推荐书籍:
《 Hadoop:The Definitive Guide》
《Hadoop in Action》
《Hadoop in Practice》
《Learning Spark》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值