三部分的内容
1、Spark Core:内核,是Spark中最重要的内容,相当于MapReduce
Spark Core和MapReduce都是进行离线计算
Spark Core的核心:RDD(弹性分布式数据集),由分区组成
2、Spark SQL:相当于Hive、Pig
支持SQL和DSL语句 -----> Spark任务(RDD) -----> 运行
3、Spark Streaming:相当于Storm
本质:把连续的数据 -----> 不连续的数据DStream(离散流):本质就是RDD
Spark Core课程内容
一、什么是Spark
1、为什么要学习Spark?讨论MapReduce的缺点不足
(*)MapReduce的缺点不足:核心Shuffle---> 产生大量I/O
(*)什么是Spark?http://spark.apache.org/
Apache Spark is a unified analytics engine for large-scale data processing.
2、Spark的特点:基于内存
(1)快
(2)易用
(3)通用
(4)兼容性
参考官网
二、Spark的体系结构与部署(重点)
1、体系结构:主从结构(单点故障)
官网提供了一张图 http://spark.apache.org/docs/latest/cluster-overview.html
2、安装部署
(1)伪分布
(2)全分布
3、Spark HA:两种方式
(1)基于文件目录: 用于开发测试
(2)基于ZooKeeper:用于生产环境
三、执行Spark Demo程序
1、执行Spark任务的工具
(1)spark-submit: 相当于 hadoop jar 命令 ---> 提交MapReduce任务(jar文件 )
提交Spark的任务(jar文件 )
(2)spark-shell:类似Scala的REPL命令行,类似Oracle中的SQL*PLUS
Spark的交互式命令行
2、使用IDEA或者Scala IDE开发程序:WordCount
(1)Java版本
(2)Scala版本
四、Spark执行原理分析
1、分析WordCount程序处理过程
2、Spark提交任务的流程:类似Yarn调度任务的过程
五、Spark的算子(函数)
1、重要:什么是RDD(类)
2、RDD的算子
(1)Transformation:不会触发计算
(2)Action:会触发计算
3、RDD的缓存机制
4、RDD的容错机制
5、RDD依赖关系
六、Spark Core编程案例