Yarn 模式是大部分用户在生产环境里用的比较多的配置,Yarn 模式分为两种:

  • yarn-client
  • yarn-custer

yarn-client 和 yarn-cluster 模式最本质的区别是driver是否跑在 yarn container里。yarn-client 模式下 driver 不是跑在yarn container里,而是在 client 端,在Zeppelin这个场景下,就是跑在 Zeppelin那台机器上。yarn-cluster 模式下driver是跑在yarn container里,也就是 Spark Yarn Application 的AM里。生产环境下,建议使用 yarn-cluster 模式,因为yarn-client 模式会对 Zeppelin 那台机器造成资源压力。

配置

Yarn 模式的配置也比较简单,除了常规的配置 SPARK_HOME 之外,你还需要配置 HADOOP_CONF_DIR。有三种方式定义 HADOOP_CONF_DIR

  • 配置在你的系统环境变量里(比如定义在 .bash_rc 里)
  • 定义在 zeppelin-env.sh 里配置
  • 定义在 interpreter setting 页面里

然后你只要设置 spark.master 为 yarn-client 就是 yarn-client 模式,设为 yarn-cluster 就是yarn-cluster模式。
不过这里有个例外,如果你是用spark 3的话,配置稍微有些不一样,需要同时是配置 spark.master 和 spark.submit.deployMode

**

Mode spark.master
Yarn Client yarn-client
Yarn Cluster yarn-cluster

Spark 3.x

Mode spark.master spark.submit.deployMode
Yarn Client yarn client
Yarn Cluster yarn cluster

公众号 钉钉群

image.png image.png