具有大量数据的内存处理引擎有什么好处?

时间:2015-05-09 14:25:33

标签: hadoop apache-spark bigdata batch-processing

如果数据集适合内存,Spark会发挥最佳效果,如果数据集不适合,它将使用磁盘,因此它与hadoop一样快。 我们假设我正在处理Tera / Peta字节的数据。用一个小集群。显然,没有办法让它适合记忆。 我的观察是,在大数据时代,大多数数据集都是Giga字节,如果不是更多。

内存处理引擎的好处是什么?

1 个答案:

答案 0 :(得分:1)

我发现Spark相对于Hadoop的MapReduce的优势不仅仅是in-memory computation engine甚至来自磁盘的输入。据我所知,至少有两个重大进步:

  1. Spark的DAG execution engine超过了MapReduce的two phase execution
  2. Thread level parallel execution超过Process level parallel execution
  3. 详细说明:

    1. 对于复杂的执行计划,Spark的DAGScheduler会将您的计划分成几个阶段,在shuffle边缘,但您不需要像在Hadoop中那样添加虚拟地图阶段,因此,消除了将输出减少到不必要的实现然后将HDFS作为地图输入回读。
    2. Hadoop的MapReduce具有众所周知的高延迟,因为map reduce中的每个任务都是一个进程,与spark的线程级并行性相比,JVM级并行性很重。