没有合适的资源?快使用搜索试试~ 我知道了~
首页深入解析Spark:架构、源码与应用模式详解
深入解析Spark:架构、源码与应用模式详解
需积分: 11 8 下载量 12 浏览量
更新于2024-07-18
收藏 2.99MB PDF 举报
Spark学习笔记深入解析了Apache Spark这一强大的大数据处理工具。Spark最初由UC Berkeley AMP实验室开源,旨在提供一个快速、通用的计算引擎,替代传统的Hadoop MapReduce。Spark的优势在于其内存计算能力,允许中间结果暂存内存而非频繁读写HDFS,特别适合迭代型算法,如数据挖掘和机器学习。 Spark的核心技术包括Scala编程语言,提供了高效编程的便利。它的运行模式多样,包括Local模式用于本地开发测试,Standalone模式作为独立的分布式资源调度框架,以及与Hadoop生态系统集成的Yarn和Mesos。Yarn作为资源调度平台,Spark需实现ApplicationMaster接口才能充分利用其服务。 Spark Core的核心组件是Resilient Distributed Dataset (RDD),它是Spark处理数据的基本单元。RDD具有五个关键特性:分区、函数操作、依赖关系、分区器和优化的计算位置。textFile方法背后使用了类似于Hadoop的文件读取机制,但默认分割大小为块大小。虽然RDD本身并不实际存储数据,但它提供了抽象数据模型,使得数据处理更加直观。 K,V格式的RDD指的是存储二元组对象的RDD,这类RDD在Spark中常用于键值对操作。理解RDD的图模型有助于深入掌握其工作原理。Spark的学习涉及基础入门、架构原理、内存计算优化、分布式计算模式以及核心组件的使用和理解,这些都是深入研究和实践Spark项目不可或缺的知识点。通过这些内容,学习者能够建立起对Spark全面且深入的认识,并能够在大数据处理领域发挥重要作用。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10751361/bg10.jpg)
./spark-submit
--master yarn–client
--class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-
hadoop2.6.0.jar
100
或者
./spark-submit
--master yarn
--deploy-mode client
--class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-
hadoop2.6.0.jar
100
执行原理图解
执行流程
1. 客户端提交一个 Application,在客户端启动一个 Driver 进程。
![](https://csdnimg.cn/release/download_crawler_static/10751361/bg11.jpg)
2. 应用程序启动后会向 RS(ResourceManager)发送请求,启动
AM(ApplicationMaster)的资源。
3. RS 收到请求,随机选择一台 NM(NodeManager)启动 AM。这
里的 NM 相当于 Standalone 中的 Worker 节点。
4. AM 启动后,会向 RS 请求一批 container 资源,用于启动
Executor.
5. RS 会找到一批 NM 返回给 AM,用于启动 Executor。
6. AM 会向 NM 发送命令启动 Executor。
7. Executor 启动后,会反向注册给 Driver,Driver 发送 task 到
Executor,执行情况和结果返回给 Driver 端。
总结
Yarn-client 模式同样是适用于测试,因为 Driver 运行在本地,
Driver 会与 yarn 集群中的 Executor 进行大量的通信,会造成客户
机网卡流量的大量增加.
ApplicationMaster 的作用:
1. 为当前的 Application 申请资源
2. 给 NameNode 发送消息启动 Executor。
注意:ApplicationMaster 有 launchExecutor 和申请资源的功能,
并没有作业调度的功能。
2. yarn-cluster 提交任务方式
①关闭 spart-stop.sh
②启动 zookeeper ./opt/sxt/zookeeper-3.4.6/bin/zkServer.sh start
③启动 hdfs start-all.sh
④node03 和 node04 yarn-daemon.sh start resourcemanager
⑤验证 node01:50070 yarn:node03:8088
![](https://csdnimg.cn/release/download_crawler_static/10751361/bg12.jpg)
提交命令
./spark-submit
--master yarn
--deploy-mode cluster
--class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-
hadoop2.6.0.jar
100
或者
./spark-submit
--master yarn-cluster
--class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-
hadoop2.6.0.jar
100
执行原理图解
执行流程
1. 客户机提交 Application 应用程序,发送请求到
RS(ResourceManager),请求启动 AM(ApplicationMaster)。
![](https://csdnimg.cn/release/download_crawler_static/10751361/bg13.jpg)
2. RS 收到请求后随机在一台 NM(NodeManager)上启动 AM(相
当于 Driver 端)。
3. AM 启动,AM 发送请求到 RS,请求一批 container 用于启动
Executor。
4. RS 返回一批 NM 节点给 AM。
5. AM 连接到 NM,发送请求到 NM 启动 Executor。
6. Executor 反向注册到 AM 所在的节点的 Driver。Driver 发送
task 到 Executor。
总结
Yarn-Cluster 主要用于生产环境中,因为 Driver 运行在 Yarn 集群
中某一台 nodeManager 中,每次提交任务的 Driver 所在的机器都
是随机的,不会产生某一台机器网卡流量激增的现象,缺点是任务
提交后不能看到日志。只能通过 yarn 查看日志。
ApplicationMaster 的作用:
1. 为当前的 Application 申请资源
2. 给 NameNode 发送消息启动 Excutor。
3. 任务调度。
停止集群任务命令:yarn application -kill applicationID
3. 补充部分算子
transformation
join,leftOuterJoin,rightOuterJoin,fullOuterJoin
作用在 K,V 格式的 RDD 上。根据 K 进行连接,对(K,V)join(K,W)返
回(K,(V,W))
join 后的分区数与父 RDD 分区数多的那一个相同。
![](https://csdnimg.cn/release/download_crawler_static/10751361/bg14.jpg)
union
合并两个数据集。两个数据集的类型要一致。
返回新的 RDD 的分区数是合并 RDD 分区数的总和。
intersection
取两个数据集的交集
subtract
取两个数据集的差集
mapPartition
与 map 类似,遍历的单位是每个 partition 上的数据。
distinct(map+reduceByKey+map)
cogroup
当调用类型(K,V)和(K,W)的数据上时,返回一个数据
集(K,(Iterable<V>,Iterable<W>))
action
foreachPartition
遍历的数据是每个 partition 的数据。
4. 术语解释
剩余98页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/31cc141c9c794db6a2d48b07fb2163da_qq_28512697.jpg!1)
LvShv
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 岩石滑动与断层冲击地压:声发射特征分析
- 新时代煤炭工业八大战略新取向剖析
- 开采强度对华亭矿区冲击地压危险性的影响分析
- 新安煤矿探采对比:影响安全生产的关键因素与技术支撑
- 210MW循环流化床锅炉引风机变频改造优化与节能效果
- 浅埋煤层开采沉陷预测:方法应用与影响分析
- 优化巷道过陷落柱支护方案:数值模拟与现场试验
- 坚硬顶板定向断裂爆破技术:安全高效采煤新方案
- 北航2019算法课作业解析:投资策略与凸子多边形优化
- 断层破碎带垮冒下堆积体边界抗力分布关键影响因素
- 哈拉沟选煤厂优化末煤系统提高效率与处理能力
- 瓦斯涌出影响下采动煤体蠕变失稳研究
- 提升煤矿装载效率的可控箕斗定量装载设备设计
- 水分调控下烟煤瓦斯吸附特性对比研究
- 重介质悬浮液密度控制硬件设计与选型探讨
- 坚硬顶板巷道支护参数设计:现场测试与数值分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)