Spark-Standalone两种提交方式(client、cluster)
程序员文章站
2024-02-21 18:50:58
...
一、概况
- spark-submit(提交任务命令)
- --deploy-mode(提交任务模式)
- --class(执行文件的包名+类名)
- ../lib/spark-examples-1.6.0-hadoop2.6.0.jar(打包好的执行文件)
二、client模式(--deploy-mode client)
./spark-submit --master spark://172.16.233.137:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
- 100是spark-examples-1.6.0-hadoop2.6.0.jar包org.apache.spark.examples.SparkPi类中main方法的参数。
- Standalone-client模式提交任务,会在客户端看到task的执行情况和结果,当在客户端提交多个application时,每个application都会启动自己的Driver,Driver与集群Worker有大量的通信,会造成客户端网卡流量激增问题。这种模式适用于程序测试。不适用于生产环境。
三、cluster模式(--deploy-mode cluster)
./spark-submit --master spark://172.16.233.137:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi /data/local/spark-1.6.0-bin-hadoop2.6/lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
- 100是spark-examples-1.6.0-hadoop2.6.0.jar包org.apache.spark.examples.SparkPi类中main方法的参数。
- Standalone-cluster模式提交任务,Driver会在急群众随机一台Worker上启动,如果提交多个application时,那么每个application的Driver会分散到集群的Worker节点,相当于将client模式的客户端网卡流量激增问题分散到集群中。这种模式适用于生产环境。
- 注意:因为cluster模式,随机分散在Worker节点上创建Driver,由Driver来发送任务到Worker。所以打包的程序任务必须在分散的Worker节点对应的目录下都存在如:172.16.233.137、172.16.233.138节点上必须有执行文件:/data/local/spark-1.6.0-bin-hadoop2.6/lib/spark-examples-1.6.0-hadoop2.6.0.jar