运行起hdfs和spark
spark的bin目录下,执行
默认client模式
./spark-submit --master spark://linux01:7077 --executor-memory 1g --total-executor-cores 4 --class (args(0)) (args(1)) 数据所在位置:hdfs://linux01:8020/wc 输出路径:hdfs://linux01:8020/out
args(0)--class 是指定main方法所在全列名,(指定运行的类)
args(1)jar包所在位置,此时jar包在本地
cluster模式
先将jar包上传到hdfs中
spark-submit --deploy-mode cluster --master spark://linux01:7077 --executor-memory 1g --total-executor-cores 4 --class (args(0)) (args(1)) hdfs://linux01:8020/wc hdfs://linux01:8020/out
jar包在hdfs
yarn会将jar包自动上传到hdfs上
jps查看后台 三台虚拟机,一台Driver 一台excutor work就只剩一台
可以指定driver的内存和核数 --driver-memory 默认1g --driver-cores 默认一个
cluster与client模式的区别
client模式Driver运行在spark-submit进程里
cluster模式 master与work通信,刚开始就先起一个DriverWapper,这里运行着sparkContext,然后master再与work通信生成其他进程,然后与DriverWapper进行反向注册
client与cluster启动的挑选条件
如果我要提交任务的话,选择cluster比较好,其可以指定内存,cores
但如果启动spark-shell,spark-sql这些交互式命令行,就必须使用client模式