← 返回首页
Spark On Yarn模式
发表时间:2023-09-18 15:39:19
Spark On Yarn模式

Spark集群有多种部署方式,比较常见的有Standalone模式和ON YARN模式。

1.Spark集群安装部署

Spark集群有多种部署方式,比较常见的有Standalone模式和ON YARN模式。

Standalone模式就是说部署一套独立的Spark集群,后期开发的Spark任务就在这个独立的Spark集群中执行。而ON YARN模式是说使用现有的Hadoop集群,后期开发的Spark任务会在这个Hadoop集群中执行,此时这个Hadoop集群就是一个公共的了,不仅可以运行MapReduce任务,还可以运行Spark任务,这样集群的资源就可以共享了,并且也不需要再维护一套集群了,减少了运维成本和运维压力,一举两得。

通常在实际工作中都会使用Spark ON YARN模式。

2.On Yarn模式

ON YARN模式很简单,首先要先保证有一个Hadoop集群,然后只需要部署一个Spark的客户端节点即可,不需要启动任何进程。

注意:Spark的客户端节点同时也需要是Hadoop的客户端节点,因为Spark需要依赖于Hadoop。

1).spark-env.sh

在spark-env.sh文件末尾增加这两行内容,指定JAVA_HOME和Hadoop的配置文件目录。

# - OPENBLAS_NUM_THREADS=1   Disable multi-threading of OpenBLAS
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_271
#export SPARK_MASTER_HOST=master
export HADOOP_CONF_DIR=/usr/local/hadoop3.1/etc/hadoop

2).测试提交任务

在$SPARK_HOME下执行:

[root@master spark]# bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster examples/jars/spark-examples_2.11-2.4.5.jar 2

...
2023-09-18 23:26:19,522 INFO yarn.Client: Application report for application_1695050409196_0001 (state: RUNNING)
2023-09-18 23:26:20,525 INFO yarn.Client: Application report for application_1695050409196_0001 (state: RUNNING)
2023-09-18 23:26:21,528 INFO yarn.Client: Application report for application_1695050409196_0001 (state: RUNNING)
2023-09-18 23:26:22,531 INFO yarn.Client: Application report for application_1695050409196_0001 (state: RUNNING)
2023-09-18 23:26:23,533 INFO yarn.Client: Application report for application_1695050409196_0001 (state: FINISHED)
2023-09-18 23:26:23,534 INFO yarn.Client: 
         client token: N/A
         diagnostics: N/A
         ApplicationMaster host: slave1
         ApplicationMaster RPC port: 44968
         queue: default
         start time: 1695050761177
         final status: SUCCEEDED
         tracking URL: http://master:8099/proxy/application_1695050409196_0001/
         user: root
2023-09-18 23:26:23,548 INFO yarn.Client: Deleted staging directory hdfs://master:9000/user/root/.sparkStaging/application_1695050409196_0001
2023-09-18 23:26:23,551 INFO util.ShutdownHookManager: Shutdown hook called
2023-09-18 23:26:23,551 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-a49958db-25dc-40a5-aa9f-b9bb34345182
2023-09-18 23:26:23,558 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-19d7358a-1c3e-4bd7-801d-080dc3c2658b

3).可以到YARN的8099界面查看提交上去的任务信息。

我们可以查看到任务类型是spark,状态是成功。就说明就可以使用ON YARN模式来执行Spark任务了。