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 |
公众号 钉钉群