一、什么是Spark?
Spark是一种基于内存的快速、通用、可扩展的大数据分析引擎
端口号:4040
二、Spark的特点
三、Spark 和Hadoop区别
1.Spark 和Hadoop 的根本差异是多个作业之间的数据通信问题 : Spark 多个作业之间数据 通信是基于内存,而 Hadoop 是基于磁盘。
2.Spark Task 的启动时间快。Spark 采用 fork 线程的方式,而 Hadoop 采用创建新的进程 的方式。
3.Spark 的缓存机制比 HDFS 的缓存机制高效。
4.Spark 只有在 shuffle 的时候将数据写入磁盘,而 Hadoop 中多个 MR 作业之间的数据交 互都要依赖于磁盘交互
Spark 确实会比 MapReduce 更有优势。但是 Spark 是基于内存的,所以在实际的生产环境中,由于内存的限制,可能会 由于内存资源不够导致 Job 执行失败,此时,MapReduce 其实是一个更好的选择,所以 Spark 并不能完全替代 MR。
四、Spark 核心模块
Spark Core:包含任务调度、内存管理、错误恢复、与存储系统交互等模块。
还包含了对弹性分布式数据集RDD的API定义。快100倍Spark SQL结构化数据:是Spark用来操作结构化数据的程序包。
Spark Streaming实时计算
Spark MLlib 机器学习:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。
Spark GraghX 图计算
五、结构化数据、半结构化数据、非结构化数据
1.结构化数据,简单来说就是数据库。
2.半结构化数据,包括邮件、HTML、报表、资源库等等,
3.非结构化数据,包括视频、音频、图片、图像、文档、文本等形式。
六、运行模式
local本地安装
Standalone 模式
Yarn 模式
K8S & Mesos 模式
Windows 模式
七、代理模式
代理模式优点
目标对象分离
耦合度低,扩展性好
保护目标对象
目标对象功能增强代理模式缺点
增加了系统的复杂度
类的数量增加
速度变慢