【问题标题】:Spark vs HadoopSpark 与 Hadoop
【发布时间】:2015-01-13 02:12:54
【问题描述】:

我需要使用 Hadoop 或 Spark 编写大数据处理应用程序。我知道 Hadoop MapReduce 是批处理应用程序的最佳技术,而 Spark 是分析应用程序的最佳技术。 应用程序将获得一个输入文件和一些配置文件。需要借助配置文件将此输入文件转换为输出文件。我们所说的配置文件或转换规范具有从源文件到目标文件列的映射以及将特定单元格值转换为其他值的表达式等信息。我已经用 MapReduce 写了这个。输入可能包含百万/十亿条记录。现在利益相关者建议使用 Spark,因为他们觉得它比 MapReduce 更快。但我认为对于这种情况,Spark 不适合,因为它适用于分析应用程序而不是批处理。此外,我只能在 Spark 中看到类似于聚合函数的 API,无法找到任何内置 API 来逐个记录和逐列读取/记录,如 MapReduce。请建议您对此的方法

【问题讨论】:

  • 我建议通读文档:spark.apache.org
  • 我了解 Spark 的基本知识,但想知道 Spark 在批处理应用程序中是否比 MapReduce 更快。我知道 Spark 非常适合分析应用程序
  • 不管怎样,Spark 中的 flatMap 后跟 reduceByKey 在逻辑上等同于 Hadoop 中的标准 MapReduce。
  • 感谢您在假期中抽出时间 :)。根据文档,Spark 比 MapReduce 快 100 倍?所以建议使用Spark。我仍然觉得 MR 是最好的批处理框架,而 Spark 适合分析应用程序

标签: hadoop mapreduce batch-processing apache-spark transformation


【解决方案1】:

你并不完全正确。 Spark 是一个很好的工具,但它还没有为企业使用做好准备。在某些极端情况下,当所有数据都适合内存并且需要应用一系列复杂的转换时,Spark 甚至可以比 Hadoop 快 100 倍。如果是典型的批处理案例,配置文件设置了一些平面逻辑,我建议您使用 Hadoop,因为使用 Spark 不会有太多的性能提升。 Hadoop 比 Spark 更加成熟和容错,采用率更高且没有错误。我认为您走的是一条安全的路线,并拥有带有 HDFS 的 Hadoop 集群来存储数据和 YARN,用 Java 编写应用程序作为 mapreduce 作业并在同一个集群上使用 Spark - 您会看到具体情况的不同不费吹灰之力

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2021-12-31
    • 2017-08-27
    相关资源
    最近更新 更多