一、Spark基于Standalone任务提交
根据Driver在集群中的位置分为两种模式:
- 一种是Standalone-Clien模式,另一种是Standalone-Cluster模式
(1)Standalone-Clien模式
Standalone-Clien模式,Driver运行在本地的客户端上
提交命令
- ./spark-submit --master spark://node1:7077 --class 包名.类名 jar包 参数
- ./spark-submit --master spark://node1:7077 –deploy-mode client --class 包名.类名 jar包 参数
执行流程
- spark集群启动后,Worker向Master注册信息
- 在客户端提交任务后,会在客户端启动Driver
- Driver向Master申请资源
- Master找到满足资源的Worker节点启动Executor
- Executor启动之后,向Driver反向注册
- Driver发送task到Executor,执行情况和结果返回给Driver端
总结
这种模式适用于程序测试,不适用于生产环境。当在客户端提交多个Spark application时,每个application都会有自己独立的Driver,Driver与集群中的Worker有大量的通信,造成客户端的网卡流量激增问题。
Standalone-Clien模式在客户端可以看到task的执行和结果。
(2)Standalone-Cluster模式
提交命令
- ./spark-submit --master spark://node1:7077 --deploy-mode cluster --class 包名.类名 jar包 参数