我知道MapReduce是一个很好的Hadoop批处理框架.但是,Spark也可以用作Hadoop上的批处理框架,与MapReduce相比,它提供了可扩展性,容错性和高性能.Cloudera,Hortonworks和MapR也开始用YARN支持Spark on Hadoop.
但是,很多公司仍在使用Hadoop上的MapReduce Framework进行批处理而不是Spark.
那么,我试图了解Spark在Hadoop上用作批处理框架的当前挑战是什么?
有什么想法吗?
对于迭代算法,Spark比mapreduce快一个数量级,因为它可以将中间数据缓存在本地JVM中,从而获得显着的加速.
Spark 1.1主要包括一个新的shuffle实现(基于排序的shuffle而不是基于hash的shuffle),一个新的网络模块(基于netty而不是使用块管理器来发送shuffle数据),一个新的外部shuffle服务使Spark执行最快的PetaByte排序(在具有46TB RAM的190个节点上)和TeraByte排序打破了Hadoop的旧记录.
Spark可以轻松处理比集群的聚合内存大一个数量级的数据集.所以,我的想法是Spark正朝着正确的方向前进,最终会变得更好.
作为参考,此博客文章解释了数据库如何执行PB级排序.