Spark的map和reduce操作是否与Hadoop Map Reduce不同?

时间:2018-11-14 07:52:37

标签: apache-spark pyspark hadoop2

我正在浏览spark文档,发现下面的行

Hadoop MapReduce,与Spark的地图和归约操作没有直接关系

1。您能否帮助我了解火花映射减少与hadoop映射减少有何不同?

  1. RDD如何工作?是否总是像hive一样将代码转换为mapreduce?

1 个答案:

答案 0 :(得分:0)

网络上有很多资源可用于说明Hadoop MapReduce和Spark MapReduce之间的差异,您仍然可以通过这些资源进行说明,但是,在下面,我指出了关键的不同之处,以便您可以有所了解:

  1. Apache Spark是用于实时数据分析的框架 分布式计算环境。它在内存中执行 计算以提高数据处理速度。快一点 用于处理内存中的大规模数据 计算和其他优化。因此,它要求很高 处理能力。而Hadoop MapReduce必须读取和写入 到磁盘。结果,处理速度不同 显着– Spark可能快100倍。然而 处理的数据量也有所不同:Hadoop MapReduce能够 使用比Spark大得多的数据集。

任务Hadoop MapReduce非常适合:

  • 线性处理海量数据集。
  • 经济解决方案,如果没有预期的即时结果

Tasks Spark适用于:

  • 快速数据处理
  • 迭代处理
  • 近实时处理等

现在,让我们跳到第二个问题。弹性分布式数据集(RDD)是Spark的基本数据结构。它是对象的不可变分布式集合。 RDD中的每个数据集都分为逻辑分区,可以在群集的不同节点上进行计算。 RDD可以包含任何类型的Python,Java或Scala对象,包括用户定义的类。 因此,在Spark中,对RDD执行了两项操作(转化,操作) 除非执行Action操作,否则逻辑不会被执行,这就是为什么它被称为惰性求值