第1章 Spark系统概述
1.1 Spark是什么
1. Spark比Hadoop快在哪里
(1)Spark使用内存计算,而Hadoop使用IO
(2)Hadoop的计算是按部就班一步一步进行的,而Spark则是提前生成了DAG,优化了运算路径
1.2 Spark生态系统BDAS
1. BDAS:伯克利数据分析栈
2. Spark Core
Spark将数据在分布式环境下分区,然后将作业转化为有向无环图(DAG),减少了多次计算之间中间结果I/O开销,并分阶段进行DAG的调度和任务的分布式并行处理。Spark采用容错的,高伸缩性的AKKA作为通信框架,减少了多线程并发运行所带来的不确定性。还采用多线程池模型来减少task的启动开销
RDD可以想象为一个个partition,RDD之间相互具有依赖关系
计算跟着数据走
3. Spark SQL
4. Spark Streaming:核心思想是微批处理
相对于Storm的优势:吞吐量更大,更高效的容错处理
5. Spark GraphX
核心抽象是:一种点和边都带有属性的有向多重图
6. MLlib
支持四种常见的机器学习问题:分类,回归,聚类和协同过滤
7. Tachyon
高容错,高性能的开源的分布式内存文件系统(内存中的HDFS)
8. BlinkDB
在海量数据上进行交互式SQL查询的大规模并行查询引擎
核心思想:通过一个自适应优化框架,随着时间的推移,从原始数据建立并维护一组多维样本,通过一个动态样本选择策略,选择一个适度大小的示例。