Spark之参数介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark之参数介绍相关的知识,希望对你有一定的参考价值。

参考技术A 这里我们要区分一下什么是客户端模式( client mode ),什么是集群模式( cluster mode )。

我们知道,当在 YARN 上运行 Spark 作业时,每个 Spark executor 作为一个 YARN 容器( container )运行。 Spark 可以使得多个 Tasks 在同一个容器( container )里面运行。 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 不能离开。下面的图形象表示了两者的区别。

当作业提交到 YARN 上之后,客户端就没事了,甚至在终端关掉那个进程也没事,因为整个作业运行在 YARN 集群上进行,运行的结果将会保存到 HDFS 或者日志中。

那么这个 Application 将失败,将 Application Status 标明为 FAILED ,并将关闭 SparkContext 。其实,启动 Executeors 是通过 ExecutorRunnable 实现的,而 ExecutorRunnable 内部是启动 CoarseGrainedExecutorBackend 的。

和 yarn-cluster 模式一样,整个程序也是通过 spark-submit 脚本提交的。但是 yarn-client 作业程序的运行不需要通过 Client 类来封装启动,而是直接通过反射机制调用作业的 main 函数。下面是流程。

你可以通过 spark-submit --help 或者 spark-shell --help 来查看这些参数。

【1】 Spark:Yarn-cluster和Yarn-client区别与联系

【2】 Spark on YARN客户端模式作业运行全过程分析

【3】 Spark on YARN集群模式作业运行全过程分析

以上是关于Spark之参数介绍的主要内容,如果未能解决你的问题,请参考以下文章

Spark Core 性能调优之配置进程参数

Spark学习之路 SparkCore的调优之资源调优

Spark算子篇 --Spark算子之combineByKey详解

玩转Spark Sql优化之缓存级别设置

Spark实例-spark读取外部配置文件之--files

Spark中配置参数的优化