Answers:
Hadoop意味着HDFS,YARN,MapReduce和许多其他东西。您是说Spark还是MapReduce?因为Spark在Hadoop上运行/与Hadoop一起运行,这才是重点。
使用Spark的主要原因是为了提高速度,这是因为它的执行可以在阶段之间将数据保留在内存中,而不是始终在执行Map或Reduce后一直保留回HDFS。对于迭代计算而言,此优势非常明显,因为迭代计算有数十个阶段,每个阶段都接触相同的数据。这是事情可能快“ 100倍”的地方。对于设计了MapReduce的简单的,像ETL一样的一遍工作,通常并没有更快。
使用Spark的另一个原因是与MapReduce相比,Spark具有更好的高级语言。它提供了类似于Scala的类似于函数式编程的视图,比编写MapReduce代码好得多。(尽管您必须使用Scala,或采用不太发达的Spark Java或Python API)。Crunch和Cascading已经在MapReduce之上提供了类似的抽象,但这仍然是Spark不错的地方。
最终,Spark还具有用于ML,图形分析和流传输的尚待开发的子项目,这些子项目公开了相似的,一致的API。使用MapReduce,您将为此而不得不转向其他几个项目(Mahout,Giraph,Storm)。尽管尚未“烘焙”,但将其包装在一个包装中还是很不错的。
为什么不使用Spark?解释一下自己: