Spark on yarn

Spark on Yarn

SparkOnYarn本质

master角色由yarn的Resourcemanager担任

worker角色由yarn的nodemanager担任

deiver角色运行在Yarn容器内或提交任务的客户端进程中

真正干活的Executor运行在yarn提供的容器内

部署:

1
2
3
4
5
6
7
# 在spark-env.sh上只要添加这两个即可
HADOOP_CONF_DIR=/root/software/hadoop/etc/hadoop
YARN_CONF_DIR=/root/software/hadoop/etc/hadoop
# 添加环境变量之后还要添加一个
which python
export SPARK_PYTHON=which python
# 然后启动,bin/pyspark --master yarn

Spark On Yarn是有两种运行模式的,一种是Cluster模式也就是集群模式,另一种是Client模式也就是客户端模式

这两种模式的区别就是Driver运行的位置

集群模式的Driver运行在Yarn容器内部,和ApplicationMaster在同一个容器内

客户端模式的Driver运行在客户端进程中,比如Driver运行在Spark-submit程序的进程中

1
2
3
4
5
6
7
8
9
10
11
# 客户端模式
SPARK HOME=/export/server/spark${SPARK HOME}/bin/spark-submit\--master yarn
--deploy-mode client \(默认是客户端模式,不加也可以)
# 下面的参数可加可不加
--driver-memory 512m \
--executor-memory 512m \
--num-executors 1 \
--total-executor-cores 2 \
${SPARK HOME}/examples/src/main/python/pi.py 10

# 集群模式