首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据进阶之Spark运行流程

大数据进阶之Spark运行流程

作者头像
成都加米谷大数据
修改2020-10-23 14:27:35
3590
修改2020-10-23 14:27:35
举报
文章被收录于专栏:大数据开发大数据开发

在大数据的诸多技术框架当中,Spark发展至今,已经得到了广泛的认可。Hadoop与Spark可以说是企业级数据平台的主流选择,基于不同的应用场景,来搭建符合需求的大数据系统平台。今天我们就来讲讲其中的Spark,Spark核心运行流程。

Spark计算模式

Spark是既Hadoop之后提出的又一代计算框架,同样主打离线批处理,但是在Hadoop原生计算引擎MapReduce的基础之上,做到了性能提升10-100倍,从而在Hadoop生态当中,超过了原生的MapReduce,逐步得到重用。

Spark继承了Hadoop MapReduce的特性,是典型的Master/worker架构。这种架构就是把计算任务进行划分,然后进行分配给多个Slave,也就是进行Map,等Slave完成了分配给自己的任务后,然后再Master上进行汇总,也就是Redudce,这就是MapReduce的思想。

Spark运行流程

Spark在Master上创建Spark context,创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等。

Driver是驱动的意思,也就是整个系统启动之后,整个系统的运转时靠Driver来驱动的,用户自己的作业也是通过Driver来分解和调度运行的。

资源申请后,Spark通常会要求资源管理器在Container中启动自己的Worker,也就是Executor进程,同时启动命令里面会带着Driver的URL地址,方便Executor启动后,向Driver注册自己。

Executor向Driver注册自己之后,大家就相互认识了,就可以互相通信,根据协议进行交互,整个分布式系统也就运行起来了。

Driver和Executor直接通过RPC协议相互联系,Spark历史上内部使用过两种RPC实现,基于Akka Actor的RPC和基于Netty自己封装的RPC。

Executor是具体的执行者,Executor拿到属于自己的Task后,运行出结果,然后把结果汇报给Driver。

Driver和Executors都运行自己的Java进程,可以在同一台机器上,也可以在不同的机器上。

Spark资源管理

而关于资源管理器,有多种选择。可以是Spark自己实现的资源管理器,standalone模式,也可以采用一些比较通用的资源管理器,比如Yarn和Mesos,这也是为什么有说法,Spark可以自己独立运行,也可以与Hadoop集成协同。

关于大数据进阶之Spark运行流程,相信看完今天的分享内容,大家也都能够有比较清楚的认识了。Spark是大数据当中必须掌握的核心技术框架,对于运行原理、架构设计等,都需要牢牢掌握,熟练运用才行。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spark计算模式
  • Spark运行流程
  • Spark资源管理
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档