大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

任何在大数据领域工作的人都会知道MapReduce的作用以及它的缺点。说出这样的缺点是不正确的,因为MapReduce和HDFS一起发布就是一种现象。但是现在,Spark已经暴风雨地夺走了世界。现在是了解Spark和MapReduce之间的区别的好时机。

什么是MapReduce?它是Hadoop框架的一部分,负责在集群上使用并行和分布式算法处理大型数据集。顾名思义,MapReduce算法包含两个重要任务:Map和Reduce。地图获取一组数据并将其转换为另一组数据,其中单个元素分解为元组(键/值对)。另一方面,Reduce将地图中的输出作为输入,并将数据元组组合成较小的元组。在MapReduce中,数据分布在集群上并进行处理。

Spark的区别在于它执行数据的内存处理。这种内存中处理是一个更快的过程,因为没有时间将数据/进程移入和移出磁盘,而MapReduce需要大量时间来执行这些输入/输出操作,从而增加延迟。

想了解更多大数据时代各个热词之间的对比,请加大数据学习交流8群640193172,共同讨论。

实时大数据分析:

实时数据分析意味着处理以每秒数百万事件的速度进入的实时事件流生成的数据,例如Twitter数据。Spark的优势在于其支持数据流与分布式处理的能力。这是一个有用的组合,可实现近乎实时的数据处理。MapReduce因为设计用于对大量数据进行批处理和分布式处理而具有这样的优势。仍然可以在MapReduce上处理实时数据,但其速度与Spark无关。

Spark声称将数据处理速度比MapReduce快100倍,而磁盘速度则快10倍。

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

图形处理:

大多数图表处理算法(如页面排序)在同一数据上执行多次迭代,这需要一个消息传递机制。我们需要明确地编程MapReduce来处理相同数据的这种多次迭代。大致地,它的工作原理如下:从磁盘读取数据,并在特定的迭代之后,将结果写入HDFS,然后从HDFS读取下一次迭代中的数据。这是非常低效的,因为它涉及将数据读取和写入磁盘,这涉及到集群中的大量I / O操作和数据复制,以实现容错。此外,每个MapReduce迭代都具有非常高的延迟,下一次迭代只能在上一个作业完成后才能开始。

此外,消息传递需要多个相邻节点,以评估特定节点的分数。这些计算需要来自其邻居(或作业的多个阶段的数据)的消息,MapReduce缺少的机制。设计了诸如Pregel和GraphLab之类的不同图形处理工具,以满足对图形处理算法的有效平台的需求。这些工具是快速和可扩展的,但对于这些复杂的多阶段算法的创建和后处理效率不高。

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

介绍Apache Spark在很大程度上解决了这些问题。Spark包含一个称为GraphX的图形计算库,简化了我们的生活。内存计算以及内置图表支持在传统的MapReduce程序中将算法的性能提高了一到两度。Spark使用Netty和Akka的组合来在整个执行器中分发消息。我们来看一些使用Hadoop和Spark描述PageRank算法性能的统计信息。

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

迭代机器学习算法:

几乎所有的机器学习算法都是迭代的。如前所述,迭代算法涉及MapReduce实现中的I / O瓶颈。MapReduce使用对于迭代算法来说太重的粗粒度任务(任务级别并行性)。Spark的帮助下,Mesos(分布式系统内核)在每次迭代之后缓存中间数据集,并在此缓存数据集上运行多次迭代,从而减少I / O,并有助于以容错方式更快地运行算法。

Spark有一个内置的可扩展的机器学习库,称为MLlib,它包含利用迭代的高质量算法,并产生比有时在MapReduce上使用的一次逼近更好的结果。

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)

其他特性:

Spark RDD: RDD表示弹性分布式数据集,可以跟踪和完成任务,而不必在分布式/批处理过程中发生故障时从头开始。

Spark MLlib: Spark提供了一个内置的库,它包含机器学习算法,与MapReduce程序相比,它们以非常快的速度在内存中执行时更快地执行程序,因为进程在磁盘中移入/移出。

SparkSQL:SparkSQL是Spark中的一个新模块,它将关系处理与Spark的功能编程API相集成。Spark SQL允许Spark程序员利用关系处理(如声明式查询和优化存储)的优势,并允许SQL用户在Spark中调用复杂的分析库。

SparkR:这是Spark最新增加的功能之一,它可以集成到'R',让程序员能够对大数据进行分析。我们可以使用RStudio对'R'集群进行分析。

最后,想学习大数据的小伙伴们!

请关注+私信回复:“学习”就可以拿到一份我为大家准备的学习资料!

大数据时代——看完大神清晰的讲解,我瞬间泪奔(文末附赠教程)