一、Standalone(Spark自带)
1.1 Standalone-client模式
提交命令:
./spark-submit --master spark://hadoop1:7077 --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
过程:
Standalone-client模式提交任务,会在客户端看到task的执行情况和结果。当在客户端提交多个Application时,每个Application都会启动自己的Driver,Driver与集群worker有大量的通信,会造成客户端网卡流量激增问题。这种模式适用于程序测试,不适用于生产。
1.2 Standalone-cluster模式
提交命令:
./spark-submit --master spark://hadoop1:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
过程:
Standalone-cluster模式提交任务,Driver会在集群中随机一台worker上启动,如果提交多个application,那么每个application的Driver会分散到集群的Worker节点,相当于将client模式的客户端网卡流量激增问题分散到集群中。适用于生产环境。
二、Yarn
2.1 Yarn-client模式
在spark客户conf下的spark-env.xml文件下配置
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
提交命令:
./spark-submit --master yarn --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
过程:
yarn-client模式提交任务,Driver在客户端启动,当提交多个Application时,每个Application的Driver都会在客户端启动,也有网卡流量激增问题。这种模式适用于程序测试,不适用于生产环境。在客户端可以看到任务的执行和结果。
2.2 yarn-cluster模式
命令:
./spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
过程:
yarn-cluster模式提交任务,适用于生产环境,AM(Driver)随即在一台NM节点启动,当提交多个Application时,每个Application的Driver会分散到集群的NM中启动,相当于将Yarn-client模式的客户端网卡流量激增问题分散到集群中。在客户端看不到task执行情况和结果,要到webui中查看。