一.提交Application的两种方式分别是client方式和cluster方式
1.client方式
这种方式,Driver进程是在client端启动
启动代码样例
spark -submit --master spark://hadoop1:7077 --class jarPath
2.cluster方式
这种当时Driver进程不在client端启动,而是在及群众随机一个Worker节点上启动
启动代码样例
spark -submit --master spark://hadoop1:7077 --deploy -mode cluster --class jarPath
二.为什么要有两种提交方式
client用于测试环境不适于生产环境
原因:测试时在客户端上可以提交jar包也可以看到运行的结果。但是频繁提交应用程序会与集群会有大量的通信,占用网卡流量,所以不适于在生产环境应用。
cluster用于生产环境不适用于测试环境
原因:每次提交程序会随机选择一个Worker节点,这样网卡流量集中的问及就解决了。
三.Driver进程与Spark集群的通信种类
1.申请资源
2.Executor启动完毕后,会向Driver反向注册
3.Driver在分发task的时候
4.Executor进程与Driver进程有心跳机制(顺便说一下,在Spark集群中的心跳是Worker向Master发送)