spark is a unified analytics engine for large-scale data processing.
spark是用于大规模数据处理的统一分析引擎
为分布式数据集的处理提供了一个有效框架,并以高效的方式处理分布式数据集。
spark强调一站式解决方案。集批处理、实时流处理、交互式查询与图计算于一体,避免了多种运算场景下需要部署不同集群带来的资源浪费
(运行同一任务,spark比hadoop快很多)
spark的核心是spark-core,即RDD,分布式弹性数据集
{
sparkSQL
sparkStreaming
MLlib (machine learning)
GraphX(graph)
}
主要功能:spark可以将数据分析过程的中间结果保存在内存中,从而不需要从外部持久化存储中反复读写数据,相较mapreduce能更好的适用于数据挖掘和机器学习等需要迭代运算的场景。
spark使用Scala语言开发,封装了大量高级运算API,极大提高了数据处理的开发效率
主要特征:
良好的容错性:在分布式数据计算时通过checkpoint来实现容错,某个运算环节失败不需要从头计算
开发便捷性:spark通过scala,Java,python api及交互式shell提供丰富使用方式
不适合细粒度更新操作,例如web服务的DAO层或web爬虫,一般做读取分析操作