Spark是一个快如闪电的统一分析引擎,用来做大规模的数据处理。
快的原因:
1.Spark基于内存式计算,能够提供非常高效的计算能力。
2.Spark支持任务的细粒度拆分,负责的计算任务会划分多个Stage(阶段),每一个阶段都支持分布式并行计算。
3.Spark计算中间计算结果支持缓存(Cache),在结束复用和故障恢复可以提供非常高效的处理性能。
4.Spark框架在传统的大数据处理框架的基础之上进行了大量的优化(网络,IO,序列化,代码等)
可以统一的原因:
批处理:Spark PDD 代替MapReduce
流处理:Spark Streaming 代替Kafka Streams,Storm
交互式查询:Spark SQL 代替Hive
机器学习(machine learning):Spark MLLib 代替 Mahout
图形计算(基于图形存储的NOSQL):Spark Graphx
其他第三方生态库:3rd lib
计算分析引擎:只是用来计算的,并没有提供数据的采集和存储方案。
特点
1.高速:Spark结合了高性能的流批处理方案,使用了先进的DAH(有向无环图)调度器,能够查询优化和物理执行。
2.简单易用:支持多种编程语言。提供了超过80个高阶函数用以开发并行计算应用,值对于不同的编程语言又提供了交互式Shell终端
3.通用性:一站式数据处理方案(流批一体,SQK,GraphX,MLlib等)
4.支持多种集群运行环境:支持多种资源管理调度系统YARN,Standalone,Cloud(云计算),K8S(容器技术)