在Spark中,可以通过spark-submit
脚本提交应用程序到YARN上运行。这个脚本允许你设置提交模式,其中--master
参数指定YARN的ResourceManager。
YARN Cluster模式和Client模式的主要区别在于:
- Application submission(应用程序提交): 在Cluster模式下,提交应用程序后,客户端可以离开;在Client模式下,提交应用程序后,客户端会等待直到应用程序结束。
- Driver execution(Driver执行): 在Cluster模式下,Driver在YARN集群的节点上运行;在Client模式下,Driver在提交应用程序的机器上运行。
- Resource allocation(资源分配): 在Cluster模式下,Application Master向YARN请求资源来运行Executor;在Client模式下,这一过程发生在Driver端。
提交到YARN Cluster模式的命令示例:
./bin/spark-submit --master yarn --deploy-mode cluster my_application.py
提交到YARN Client模式的命令示例:
./bin/spark-submit --master yarn --deploy-mode client my_application.py
在实际使用中,你可以根据你的需求选择适合的提交模式。如果你不需要与应用程序的运行进行交互,或者你不在乎等待应用程序完成,那么可以选择Cluster模式。如果你需要与应用程序的运行进行交互,那么Client模式更适合。