MapReduce有其严重的缺点,如启动任务时的高开销、对中间数据和计算结果写入磁盘的依赖。这些都使得Hadoop不适合迭代式或低延迟的任务。
Apache Spark是一个新的分布式计算框架,从设计开始便注重对低延迟任务的优化,并将中间数据和结果保存在内存中。Spark提供简洁明了的函数式API,并完全兼容Hadoop生态系统。
Spark还提供针对Scala、Java和Python语言的原生API。通过Scala和Python的API,Spark 应用程序可充分利用Scala或Python语言的优势。
Spark目前还自带一个分布式机器学习和数据挖掘工具包MLlib
机器学习模型一般具有迭代式的特性,而 这与Spark的设计目标一致。并行计算的框架有很多,但很少能在兼顾速度、可扩展性、内存处 理和容错性的同时,还提供灵活、表达力丰富的API。Spark是其中为数不多的一个。
第1章“Spark的环境搭建与运行”,
第2章“设计机器学习系统”,
第3章“Spark上数据的获取、处理与准备”,
第4章“构建基于Spark的推荐引擎”,展示了如何创建一个基于协同过滤的推荐模型。
第5章“Spark构建分类模型”,阐述如何创建二元分类模型,以及如何利用标准的性能评估指标来评估分类效果。
第6章“Spark构建回归模型”,
第7章“Spark构建聚类模型”,
第8章“Spark应用于数据降维”,
第9章“Spark高级文本处理技术”,
第10章“Spark Streaming在实时机器学习上的应用”,