前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark 在Yarn上运行Spark应用程序

Spark 在Yarn上运行Spark应用程序

作者头像
smartsi
发布2019-08-07 14:12:10
1.8K0
发布2019-08-07 14:12:10
举报
文章被收录于专栏:SmartSi

1. 部署模式

在 YARN 中,每个应用程序实例都有一个 ApplicationMaster 进程,该进程是为该应用程序启动的第一个容器。应用程序负责从 ResourceManager 上请求资源。一旦分配了资源,应用程序将指示 NodeManagers 启动容器。ApplicationMasters 消除了对活跃客户端的依赖:启动应用程序的进程可以终止,并且从在集群上由 YARN 管理的进程继续协作运行。

有关指定部署模式的选项,请参阅spark-submit选项

1.1 Cluster部署模式

在 Cluster 模式下,Spark Driver 在集群主机上的 ApplicationMaster 上运行,它负责向 YARN 申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉 Client,作业会继续在 YARN 上运行。

Cluster 模式不太适合使用 Spark 进行交互式操作。需要用户输入的 Spark 应用程序(如spark-shell和pyspark)需要 Spark Driver 在启动 Spark 应用程序的 Client 进程内运行。

1.2 Client部署模式

在 Client 模式下,Spark Driver 在提交作业的主机上运行。ApplicationMaster 仅负责从 YARN 中请求 Executor 容器。在容器启动后,Client 与容器通信以调度工作。

模式

Client模式

Cluster模式

Driver在哪运行

Client

ApplicationMaster

请求资源

ApplicationMaster

ApplicationMaster

启动 executor 进程

YARN NodeManager

YARN NodeManager

持久化服务

YARN ResourceManager 和 NodeManagers

YARN ResourceManager 和 NodeManagers

是否支持Spark Shell

Yes

No

2. 在YARN上运行Spark Shell应用程序

要在 YARN 上运行 spark-shell 或 pyspark 客户端,请在启动应用程序时使用 --master yarn --deploy-mode client 标志。

3. Example

3.1 以Cluster模式运行

以Cluster模式运行WordCount:

代码语言:javascript
复制
spark-submit \
--class com.sjf.example.batch.WordCount \
--master yarn \
--deploy-mode cluster \
--driver-memory 10g \
--executor-memory 12g \
--num-executors 20 \
--executor-cores 2 \
${RUN_HOME}/spark-example-jar-with-dependencies.jar \
${input_path} ${output_path}

该命令会打印状态,直到作业完成或按下 control-C。在 Cluster 模式下终止 spark-submit 进程不会像在 Client 模式下那样终止 Spark 应用程序。要监视正在运行的应用程序的状态,请运行 yarn application -list

3.2 以Client模式运行
代码语言:javascript
复制
spark-submit \
--class com.sjf.example.batch.WordCount \
--master yarn \
--deploy-mode client \
--driver-memory 10g \
--executor-memory 12g \
--num-executors 20 \
--executor-cores 2 \
${RUN_HOME}/spark-example-jar-with-dependencies.jar \
${input_path} ${output_path}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 部署模式
    • 1.1 Cluster部署模式
      • 1.2 Client部署模式
      • 2. 在YARN上运行Spark Shell应用程序
      • 3. Example
        • 3.1 以Cluster模式运行
          • 3.2 以Client模式运行
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档