在Standalone模式下,Spark的任务提交根据Driver程序运行的位置不同,分为client和cluster两种模式。在这两种模式中,Driver负责应用程序的资源申请、任务分发、结果回收以及监控任务执行。以下分别介绍Client和Cluster模式。
在启动Standalone集群后,可在node4节点上执行以下命令以Client模式提交任务
[root@node4 ~]# cd /software/spark-3.5.5/bin/
#第一种方式
[root@node4 bin]# ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.13-3.5.5.jar 1000
#第二种方式
[root@node4 bin]# ./spark-submit --master spark://node1:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.13-3.5.5.jar 1000
以上命令中注意如下几点:
Standalone Client模式提交任务流程如下图所示:
总结:在Standalone-Client模式中,Driver进程在提交Application的客户端节点上启动,客户端可以查看任务的执行情况和结果。此模式适用于测试环境,不建议用于生产环境。原因在于,当客户端提交大量Application时,所有Driver都在客户端启动,Driver与集群之间存在大量通信,可能导致客户端网络流量激增。
在启动Standalone集群后,可在node4节点上执行以下命令以Cluster模式提交任务:
[root@node4 ~]# cd /software/spark-3.5.5/bin/
[root@node4 bin]# ./spark-submit --master spark://node1:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.13-3.5.5.jar 1000
需要注意:
Standalone Cluster模式提交任务流程如下图所示:
Standalone集群启动,Worker向Master汇报资源,Master掌握集群资源状况。
客户端使用 spark-submit 提交应用程序后,向 Master 请求启动 Driver。
Master 接受请求,在集群中的某个 Worker 节点上启动 Driver 进程。
Driver 启动后,向Master申请启动Application所需的资源。
Master收到请求之后,在相应的Worker节点上启动Executor进程。
Executor启动后,向Driver注册,Driver掌握一批计算资源。
Driver将task分发到Executor执行,Executor将task执行结果返回给Driver。
总结:在Standalone-Cluster模式中,Driver进程在集群的某个Worker节点上启动,客户端无法直接查看任务的执行结果,需要通过集群的Web UI查看日志获取结果。此模式适用于生产环境,因为每个Application的Driver会随机在集群中的某个Worker上启动,避免了Client模式下客户端网络流量激增的问题。
Copyright © 2019- zgxue.com 版权所有 京ICP备2021021884号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务