某二本非计算机专业16年毕业,50万年薪大佬学习总结-尚硅谷大数据技术之Spark总结
某二本非计算机专业16年毕业,50万年薪大佬学习总结_尚硅谷大数据技术之Spark总结 某二本非计算机专业16年毕业,50万年薪大佬学习总结_尚硅谷大数据技术之Spark总结 某二本非计算机专业16年毕业,50万年薪大佬学习总结_尚硅谷大数据技术之Spark总结 标题中的故事讲述了某位二本非计算机专业的毕业生,通过自身的努力和学习,达到了年薪50万的成就,他的学习总结集中在尚硅谷大数据技术的Spark部分。这篇文章将详细解析Spark的核心概念、组件通信、作业调度以及任务执行的过程。 Spark是大数据处理领域的一个关键工具,它以其高效的内存计算和分布式特性而闻名。Spark应用的提交通常是在Yarn这样的资源管理器上进行,当使用`bin/spark-submit`命令执行时,SparkContext会启动ApplicationMaster和Executor进程。其中,Driver运行在ApplicationMaster中,负责整个应用程序的协调工作,而Executor是实际执行计算任务的单元。 Spark的内部通信基于网络IO,早期采用AKKA,现在更多地使用Netty作为通信框架。通信方式包括阻塞式(BIO)、非阻塞式(NIO)和异步(AIO)。在Linux上,AIO的性能提升并不显著,因为其底层仍使用EPOLL,而Netty更倾向于在Windows系统上使用AIO。在组件内部,Driver通过CoarseGrainedSchedulerBackend与Executor进行通信,Executor通过CoarseGrainedExecutorBackend与Driver交互。 Spark作业的提交始于创建SparkConf并设置应用程序名称,然后通过SparkContext构建逻辑代码,形成RDD(弹性分布式数据集)。RDD是Spark的基本数据抽象,可以通过转换和行动操作进行计算。行动操作会触发Job的执行,Job进一步被拆分为多个Stage,根据窄依赖和宽依赖的关系进行划分。Stage的划分会影响到Task的数量和分区,Task是实际在Executor上执行的最小单元。 任务执行过程中,TaskSetManager负责任务调度,调度模式可以是FIFO(先进先出)或FAIR(公平)。Executor根据任务的首选位置进行本地化级别的选择,如果无法满足,则会进行降级处理。Task的执行涉及序列化,Spark默认使用Java序列化,但在shuffle操作中,为了提高效率,会使用Kryo序列化。Executor接收到Task后,解码并执行,计算结果可能会被缓存到内存中,利用Spark的高效缓存机制。此外,累加器是Spark提供的一种共享变量,可以在任务执行过程中进行累加操作。 Spark的学习涵盖了从基础的分布式原理到高级的优化技巧,理解Spark的内核原理、组件通信、作业调度和任务执行流程,对于提升大数据处理能力至关重要。这位非计算机专业的大佬的成功经验表明,通过持续学习和实践,即使非科班出身也能在IT领域取得显著的成就。
- 粉丝: 5
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2024下半年,CISSP官方10道练习题
- JD-Core是一个用JAVA编写的JAVA反编译器 .zip
- 时间复杂度与数据结构:算法效率的双重奏
- QT 简易项目 网络调试器(未实现连接唯一性) QT5.12.3环境 C++实现
- YOLOv3网络架构深度解析:关键特性与代码实现
- ACOUSTICECHO CANCELLATION WITH THE DUAL-SIGNAL TRANSFORMATION LSTM NETWORK
- 深入解析:动态数据结构与静态数据结构的差异
- YOLOv2:在YOLOv1基础上的飞跃
- imgview图片浏览工具v1.0
- Toony Colors Pro 2 2.2.5的资源