任务描述
本关任务: Spark on YARN 模式的安装与部署。
相关知识
为了完成本关任务,你需要掌握:
- Spark 部署模式的种类;
- Spark on YARN 模式的安装。
Spark 部署模式
Spark 部署模式主要分为以下几种,Spark Standalone、Mesos、YARN 和 Kubernetes,下面主要介绍 Spark on YARN 部署模式的安装。
YARN 的简介
yarn 是一种统一的资源管理机制,可以通过队列的方式,管理运行多套计算框架。Spark on Yarn 模式根据 Dirver 在集群中的位置分为两种模式:一种是 Yarn-Client 模式,另一种是 Yarn-Cluster 模式。
yarn 框架的基本运行流程图:
-
ResourceManager:负责将集群的资源分配给各个应用使用,而资源分配和调度的基本单位是 Container,其中封装了集群资源(CPU、内存、磁盘等),每个任务只能在 Container 中运行,并且只使用 Container 中的资源;
-
NodeManager:是一个个计算节点,负责启动 Application 所需的Container,并监控资源的使用情况汇报给 ResourceManager;
-
ApplicationMaster:主要负责向 ResourceManager 申请Application 的资源,获取 Container 并跟踪这些 Container 的运行状态和执行进度,执行完后通知 ResourceManager 注销 ApplicationMaster,ApplicationMaster 也是运行在 Container 中。
Spark on YARN模式的安装
1.将 Spark 安装包(/opt 目录)解压到 /app 目录。
mkdir /app
tar -zxvf /opt/spark-2.2.2-bin-hadoop2.7.tgz -C /app
2.切换到 $SPARK_HOME/conf,修改 spark-env.sh 文件,添加 Hadooop 配置文件所在目录信息。
cd /app/spark-2.2.2-bin-hadoop2.7/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在该文件中添加文件内容:
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
3.可以选择性配置 spark 的环境变量(这一步不是必须的)。
添加上述信息后,我们在 spark-submit 提交任务时,就可以指定 master 为 yarn,我们可以使用如下命令测试是否安装成功。
start-all.sh
cd /app/spark-2.2.2-bin-hadoop2.7/bin
./spark-submit --class com.edu.fldr.SparkTest --master yarn /opt/dm-1.0-SNAPSHOT.jar