Spark 基础概念解读

本文介绍 Spark 中涉及到的几个基础概念相关名词及其在 Spark 程序(即用户程序, Application)运行过程中的作用,初探 Spark 程序的运行原理。
Spark 程序运行架构
上图是源自 Spark 官方文档对 Spark 程序运行架构的高度抽象,下文将围绕该图示进行阐述。

  1. Cluster Manager
    Spark 程序在集群上运行时,需要集群管理者 (Cluster Manager) 为程序分配其运行所需要的资源。Spark 程序是通过一个 SparkContext 对象向 Cluster Manager 发起资源请求的,目前支持的 Cluster Manager 有 Spark standalone cluster manager, Mesos, YARN 或 Kubernetes,我们的集群是使用 YARN 管理的。
  2. Worker
    Worker 是和 Cluster Manager 一个范畴的概念,即 Cluster Manager 所管理的集群中可用于计算或存储的主机/虚拟机节点
  3. Driver program
    运行 Spark 程序 main 函数的进程,负责创建 SparkContext 对象进而能向 Cluster Manager 发起资源请求。该进程运行的主机节点是 Driver 节点。当 Spark 程序以 yarn client 模式提交时,负责提交 Spark 程序的主机(client)作为 Driver 节点;当 Spark 程序以 yarn cluster 模式运行时,运行 spark-submit 脚本的节点(client) 负责将 Spark 程序和参数传到集群,由 cluster manager 节点 (yarn ResourceManager) 选取一个 NodeManager 启动 Application Master 进程,并由 Application Master 进程调用 Spark 程序 main 函数,创建 SparkContext 通过 Application Master 向 Cluster Manager 发起资源请求。从深层次的含义讲,yarn-cluster 和yarn-client 模式的区别其实就是 Application Master 进程的区别,yarn-cluster 模式下,driver 运行在AM (Application Master) 中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉 Client,作业会继续在 YARN 上运行。然而 yarn-cluster 模式不适合运行交互类型的作业。而 yarn-client 模式下,Application Master 仅仅向YARN请求executor,client 会和请求的 container 通信来调度他们工作,也就是说 client 不能退出。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值