【发布时间】: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