概念
引用 Spark 官网的定义: Apache Spark is a fast and general engine for large-scale data processing
Spark 是用于大规模数据处理的快速和通用的集群计算平台
目前大数据处理的应用主要可以分为离线的海量数据处理(如用户画像推荐系统), 以及实时的数据流处理(天猫双十一实时大屏)
前者可以使用 Hadoop MapReduce, 后者可以使用 Storm
而我们的 Spark, 既可以支持离线海量数据处理, 又可以支持实时的数据流处理, 并且还具有很多优势: 快速通用兼容强大的生态圈
优势
(1)快速
与 Hadoop 的 MapReduce(计算完之后会将中间结果存储在磁盘)相比, Spark 基于内存的运算要快 100 倍以上, 基于硬盘的运算也要快 10 倍以上 Spark 实现了高效的 DAG 执行引擎, 可以通过基于内存来高效处理数据流
(2)通用
Spark 支持 JavaPython 和 Scala 的 API, 还支持超过 80 种高级算法, 使用户可以快速构建不同的应用而且 Spark 支持交互式的 Python 和 Scala 的 shell, 可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法
(3)兼容
Spark 可以非常方便地与其他的开源产品进行融合比如, Spark 可以使用 Hadoop 的 YARN 作为它的资源管理和调度器, 并且可以处理所有 Hadoop 支持的数据, 包括 HDFSHBase 等
Spark 生态圈
spark 生态圈
(1)Spark Core : 实现 Spark 基本功能, 如任务调度, 内存管理, 与存储系统交互, 还包括对弹性分布式数据集 RDD 的 API 定义
(2)Spark SQL :Spark SQL 是 Spark 用来处理结构化数据的一个模块, 它提供了一个编程抽象叫做 DataFrame 并且作为分布式 SQL 查询引擎的作用它将 Spark SQL 转换成 RDD, 然后提交到集群执行, 执行效率非常快
(3)Spark Streaming : 是 Spark 提供的对实时数据进行流式计算的组件如网页服务器日志等都是数据流, Spark Streaming 提供了操作数据流的 API
(4)Mlib : 提供了很多种机器学习算法, 包括分类回归聚类协同过滤等, 还提供了模型评估, 数据导入等额外支持的功能
(5)GraphX: 是用于操作图 (比如社交网络的朋友关系图) 的程序库, 可以进行并行的图计算
来源: http://www.jianshu.com/p/b3ce62f2f287