1. 什么是 Spark
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是 UC Berkeley AMP lab (加州大学伯克利分校的 AMP 实验室)所开源的类 Hadoop MapReduce 的通用并行计算框架,Spark 拥有Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。Spark 是 Scala 编写,方便快速编程。
2. 总体技术栈讲解
3. Spark 演变历史
4. Spark 与 MapReduce 的区别
都是分布式计算框架,Spark 基于内存,MR 基于 HDFS。Spark 处理数据的能力一般是 MR 的十倍以上,Spark 中除了基于内存计算外,还有 DAG 有向无环图来切分任务的执行先后顺序。
5. Spark 运行模式
Local
多用于本地测试,如在 eclipse,idea 中写程序测试等。
Standalone
Standalone 是 Spark 自带的一个资源调度框架,它支持完全分布式。
Yarn
Hadoop 生态圈里面的一个资源调度框架,Spark 也是可以基于 Yarn来计算的。
Mesos
资源调度框架。
要基于 Yarn 来进行资源调度,必须实现 AppalicationMaster 接口,Spark 实现了这个接口,所以可以基于 Yarn。