我们应该什么时候使用Apache Spark



将MR完全替换为Spark是否明智?以下是我们仍然使用MR的地方,需要您的输入才能继续使用Apache Spark option-

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

ETL - Spark比MR. Plus需要的样板代码少得多,你可以用Scala、Java和Python编写代码(更不用说R了,但可能不适合ETL)。尤其是Scala,使ETL易于实现——需要编写的代码更少。

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

NoSQL -有许多NoSQL数据源可以很容易地使用SparkSQL插入到Spark。只要谷歌一下你感兴趣的,可能很容易联系上。

流处理- Spark Streaming在微批处理中工作,Storm相对于Spark Streaming的主要卖点之一是它是真正的流处理,而不是微批处理。因为你已经在使用批量Spark Streaming应该是一个很好的选择。

Hive Query -有一个Hive on Spark项目正在进行中。在这里查看状态。它将允许Hive通过Spark集群执行查询,并且应该可以与Tez上的Hive相媲美。

相关内容

  • 没有找到相关文章

最新更新