local模式下,我们是不会将spark作业提交到生产机器上去跑的
local模式,其实仅仅用于idea中运行spark作业,以及打断点,调试spark作业来用
通常,用local模式执行,我们会手动生产一份数据,来使用
部署到测试机器上来进行测试运行spark作业的时候,都是使用client模式(standalone client模式,standalone cluster模式)
client模式下,提交作业后,driver在本机启动,可以实时看到详细的日志信息,方便追踪排除错误
standalone模式下提交spark作业(唯一与local区别就是将master设置成spark://master_ip:port)
三种模式
1. 硬编码:SparkConf.setMaster("spark://IP:PORT")
2.spark-submit: --master spark://IP:PORT
3.spark-shell: --master spark://IP:PORT
通常来说,上面的三种写法,使用第二种是最合适的
使用spark-submit脚本来提交的时候,还可以指定俩种deploy mode,spark standalone cluster支持client mode 和cluster mode
client mode 下,你在哪台机器上用spark-submit脚本提交spark作业,driver就会在那台机器上启动
cluster mode下,driver会通过master进程,被随机分配一个worker进程来启动
standalone模式,是要在spark-submit中,用--master指定Master进程的URL
其次,使用standalone client模式活cluster模式,是要在spark-submit中,使用--deploy-mode client/cluster来设置
默认,如果不设置的话,那么就是client模式