Local模式
Local模式就是运行在一台计算机上的模式,通常用于在本地机器联系和测试,它可以通过如下方式设置Master:
-
local
所有计算都运行在一个线程中,没有并行计算。 -
local[K]
指定使用几个线程来运行计算,比如local[4]就是运行四个Worker线程。 -
local[*]
按照CPU核心数设置线程
提交任务时指定--master
参数为:local
、local[K]
或local[*]
Standalone模式
构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。
- 环境配置
- 修改slave配置
cd spark/conf/ mv slave.template slave vi slave # 添加Spark集群节点地址
- 修改spark-env.sh配置
cd spark/conf/ mv spark-env.sh.template spark-env.sh vi spark-env.sh # 添加如下配置 # 1. 配置jdk路径 # export JAVA_HOME=<JAVA_HOME> # 2. 配置Spark集群Master地址、端口 # SPARK_MASTER_HOST=<SPARK_MASTER_HOST> # SPARK_MASTER_PORT=<SPARK_MASTER_PORT>
- 分发spark文件
xsync spark/
- 启动集群
cd spark/ sbin/start-all.sh
- 查看集群启动情况
xcall jps # 看到结果 # 主节点有两个进程:Master,Worker # 子节点有一个进程:Worker # 表示启动成功
- 提交任务
提交任务时指定--master
参数为:spark://<SPARK_MASTER_HOST:<SPARK_MASTER_PORT>
Yarn模式
Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-cluster
和yarn-client
两种模式,主要区别在于Driver程序的运行节点:
yarn-cluster模式:Driver程序运行在客户端,可以立刻看到应用的输出,适用于交互、调试
yarn-cluster模式:Driver程序运行在由ResourceManager启动的ApplicationMaster,适用于生产环境
- 环境配置
- 修改hadoop配置文件yarn-site.xml
<!--添加如下内容--> <!--是否启动一个线程检查任务正在使用的物理内存量,如果超出分配值,则直接杀掉任务,默认值是true--> <property> <name>yarn,nodemanager.pmem-check-enabkled</name> <value>false</value> </property> <!--是否启动一个线程检查任务正在使用的虚拟内存量,如果超出分配值,则直接杀掉任务,默认值是true--> <property> <name>yarn,nodemanager.vmem-check-enabkled</name> <value>false</value> </property>
- 修改spark-env.sh配置
cd spark/conf/ vi spark-env.sh # 添加如下内容 YARN_CONF_DIR=<YARN_CONF_DIR>
- 分发配置文件
xsync hadoop/etc/yarn-site.xml xsync spark-env.sh
- 提交任务
提交任务时指定--master
参数为:yarn
使用yarn-cluster
模式指定--deploy-mode
为cluster
,使用yarn-client
模式指定--deploy-mode
为client
网友评论