提交第一个spark应用到集群中运行
bin/spark-submit --master spark://node-5:7077 --class org.apache.spark.examples.SparkPi --executor-memory 2048mb --total-executor-cores 12 examples/jars/spark-examples_2.11-2.2.0.jar 1000
bin/spark-submit --master spark://hdp-nn-01:7077 --class cn.edu360.spark.ScalaWordCount --executor-memory 1024mb --total-executor-cores 4 /root/temp/SparkTest-1.0.jar hdfs://hdp-dn-01:9000/adc hdfs://hdp-dn-01:9000/out11
提交任务时常用的选项如下:
参数说明: spark-submit 脚本
--class: 程序入口,主类
--master: 集群主节点(master)地址 (e.g. spark://23.195.26.187:7077)
--deploy-mode: 部署方式 ,在worker上(cluster) 或者是在客户端上 (client) (default: client) †
--conf: 配置选项
application-jar: 程序以及依赖的地址, URL 必须是在你的集群中全局可见的 ,例如 hdfs:// or a file://
application-arguments: 程序参数
注意参数要在jar包之前指定,这些参数都是sparksubmit传给spark的;最后跟jar包路径及jar包运行参数
spark中master,worker,driver,excutor都负责什么工作
Yarn和Spark的StandAlone调度模式对比
Header Cell | Header Cell | Header Cell |
---|---|---|
ResouceManager | Master | 管理子节点、资源调度、接收任务请求 |
NodeManager | Worker | 管理当前节点,并管理子进程 |
YarnChild | Executor | 运行真正的计算逻辑的(Task) |
Client | SparkSubmit | (Client + ApplicaitonMaster)提交app,管理该任务的Executor |
ApplicaitonMaster | 并将Task提交到(Executor) |