Spark on yarn--几种提交集群运行spark程序的方式

今天看了spark的yarn配置,本来想着spark在hadoop集群上启动之后,还需要配置spark才能让yarn来管理和调度spark的资源,原来启动master和worker之后就会让yarn来原理spark的资源,因为我使用了spark和hadoop集群的高可用,可能是不是这个问题呢,还不太清楚,暂且记住,等我再研究研究


因为我使用zookeeper集群来进行管理,所以我提交任务的时候

 ./spark-submit --class com.spark.wordcount --master spark://spark01.elk.com:7077,spark02.elk.com:7077 /root/jars/WordCount.jar
可以正常执行,我很好奇,所以去掉其中一个,也可以正常运行

 ./spark-submit --class com.spark.wordcount --master spark://spark01.elk.com:7077  /root/jars/WordCount.jar

因为看网上很多都是用yarn-client和yarn-cluster来提交到集群上运行的,所以我也试了一下,发现

./spark-submit --class com.spark.wordcount --master yarn-cluster /root/jars/WordCount.jar

通过这种方式也可以正常运行,


可以看出来它确实是提交到resourcemanager让它管理资源去了,但是运行

./spark-submit --class com.spark.wordcount --master yarn-client /root/jars/WordCount.jar运行时却报错了


很好奇为啥会出现这个问题,暂且留下,咱继续,

还有一种提交方式

./spark-submit --class com.spark.wordcount--deploy-mode client /root/jars/WordCount.jar

./spark-submit --class com.spark.wordcount--deploy-mode cluster /root/jars/WordCount.jar

这两种方式又提交成功了,这很是奇怪。我还得研究研究

刚看了一下

yarn-client和yarn-cluster的主要区别

主要是任务调度taskschedule的区别,yarn-client是将任务调度的功能放在客户端,而yarn-cluster将任务放在资源管理器中

你可能感兴趣的:(yarn,spark,yarn)