我们什么时候应该去Apache Spark

时间:2015-09-16 06:59:41

标签: mapreduce apache-spark

用Spark完全替换MR是否明智。以下是我们仍然使用MR的区域,需要您输入 Apache Spark 选项 -

  • ETL:数据验证和转换。使用MR API的Sqoop和自定义MR程序。
  • 机器学习:Mahout算法,用于推荐,分类和聚类
  • NoSQL集成:使用MR API与NoSQL数据库连接
  • 流处理:我们正在使用Apache Storm批量进行流处理。
  • Hive Query:我们已经在使用Tez引擎加速Hive查询,与MR引擎相比,性能提升了10倍

1 个答案:

答案 0 :(得分:2)

ETL - Spark所需的锅炉板代码比MR少得多。另外,您可以使用Scala,Java和Python进行编码(更不用说R,但可能不适用于ETL)。特别是Scala使ETL易于实现 - 编写的代码更少。

机器学习 - ML是Spark出现的原因之一。使用MapReduce,HDFS交互使许多ML程序非常慢(除非你有一些HDFS缓存,但我不太了解它)。 Spark可以在内存中运行,因此您可以让程序构建具有不同参数的ML模型,以针对内存中的数据集递归运行,因此没有文件系统交互(初始加载除外)。

NoSQL - 有许多NoSQL数据源可以使用SparkSQL轻松插入Spark。只是谷歌你感兴趣的,它可能很容易连接。

流处理 - Spark Streaming以微批量工作,Storm over Spark Streaming的主要卖点之一是它是真正的流式而非微批量。由于您已经在使用批处理,因此Spark Streaming应该非常合适。

Hive Query - Spark项目上有一个Hive正在进行中。 Check the status here.它允许Hive通过Spark Cluster执行查询,并且可以与Tez上的Hive相媲美。