1.概述:
设计目的是为了让数据分析更快,不仅运算速度快,编程速度也快。既集成了hadoop Mapreduce 的优点,也解决了Mapreduce的缺陷。Spark最大的特点是将数据计算,中间结果都存储在内存中,大大减少了IO开销,因而Spark适合于迭代运算比较多的数据挖掘和机器学习中。
2.特点:
1)运行速度快:支持循环数据流和内存计算,计算速度是hadoop mapreduce 的数十倍。
2)易于使用:支持scala,java,python,R进行编程。
3)通用性:提供了完整的技术栈,包SQL查询,流式计算,机器学习,和图算法组件。
4)运行模式多样:可以运行在独立的集群中,也可以在Hadoop中,可以访问HDFS,HBase,Hive多种数据源。
3.Spark生态系统:
1)Spark Core
包含Spark的基本功能,如内存计算,任务调度,部署模式,故障恢复,存储管理等,主要面向批数据处理。
2)Spark Sql
允许开发人员直接处理RDD,同时可以查询Hive,Hbase等外部数据源
3)Spark Streaming
支持高吞吐量,可容错处理的实时流数据处理。
4)MLIib
提供常用机器学习算法的实现
5)GraphX
是Spark中用于图计算的API
4.应用场景
应用场景 | 时间跨度 | Spark生态系统组件 |
复杂的数据批量处理 | 小时级 | Spark Core |
基于历史数据的交互式查询 | 分钟级,秒级 | Spark Sql |
基于实时数据流的数据处理 | 毫秒,秒级 | Spark Sreaming |
基于历史数据的数据挖掘 | MLlib | |
图结构数据处理 | GraphX |