加米谷大数据张老师|大数据进阶之Spark运行流程
在大数据的诸多技术框架当中 , Spark发展至今 , 已经得到了广泛的认可 。 Hadoop与Spark可以说是企业级数据平台的主流选择 , 基于不同的应用场景 , 来搭建符合需求的大数据系统平台 。 今天我们就来讲讲其中的Spark , Spark核心运行流程 。
Spark是既Hadoop之后提出的又一代计算框架 , 同样主打离线批处理 , 但是在Hadoop原生计算引擎MapReduce的基础之上 , 做到了性能提升10-100倍 , 从而在Hadoop生态当中 , 超过了原生的MapReduce , 逐步得到重用 。
文章图片
【加米谷大数据张老师|大数据进阶之Spark运行流程】Spark继承了HadoopMapReduce的特性 , 是典型的Master/worker架构 。 这种架构就是把计算任务进行划分 , 然后进行分配给多个Slave , 也就是进行Map , 等Slave完成了分配给自己的任务后 , 然后再Master上进行汇总 , 也就是Redudce , 这就是MapReduce的思想 。
Spark在Master上创建Sparkcontext , 创建SparkContext的目的是为了准备Spark应用程序的运行环境 。 在Spark中由SparkContext负责和ClusterManager通信 , 进行资源的申请、任务的分配和监控等 。
Driver是驱动的意思 , 也就是整个系统启动之后 , 整个系统的运转时靠Driver来驱动的 , 用户自己的作业也是通过Driver来分解和调度运行的 。
资源申请后 , Spark通常会要求资源管理器在Container中启动自己的Worker , 也就是Executor进程 , 同时启动命令里面会带着Driver的URL地址 , 方便Executor启动后 , 向Driver注册自己 。
文章图片
Executor向Driver注册自己之后 , 大家就相互认识了 , 就可以互相通信 , 根据协议进行交互 , 整个分布式系统也就运行起来了 。
Driver和Executor直接通过RPC协议相互联系 , Spark历史上内部使用过两种RPC实现 , 基于AkkaActor的RPC和基于Netty自己封装的RPC 。
Executor是具体的执行者 , Executor拿到属于自己的Task后 , 运行出结果 , 然后把结果汇报给Driver 。
Driver和Executors都运行自己的Java进程 , 可以在同一台机器上 , 也可以在不同的机器上 。
而关于资源管理器 , 有多种选择 。 可以是Spark自己实现的资源管理器 , standalone模式 , 也可以采用一些比较通用的资源管理器 , 比如Yarn和Mesos , 这也是为什么有说法 , Spark可以自己独立运行 , 也可以与Hadoop集成协同 。
文章图片
关于大数据进阶之Spark运行流程 , 相信看完今天的分享内容 , 大家也都能够有比较清楚的认识了 。 Spark是大数据当中必须掌握的核心技术框架 , 对于运行原理、架构设计等 , 都需要牢牢掌握 , 熟练运用才行 。
- 「技术」这样的思路,让控制器中按键处理数据的方法变得简单了
- IPsecVPN(数据通信)
- 学大数据是否有前途 如何系统掌握大数据技术
- 分析|用数据量化方法透视不确定性世界
- 微信官方发布国庆假期消费大数据,来瞧瞧你的钱都花到哪了
- 数据|女生从事数据分析岗位会面临哪些压力
- 海云数据:用AI让不可能变成可能
- 面向销售自动化的基于数据扩增和真实图像合成的鲁棒多目标检测
- 澳大利亚留学—大数据分析
- 为什么很多用了几十年的主板也没听说过BIOS的数据坏了的呢?