您的位置:首页 > 其它

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

2016-04-01 14:45 363 查看
今天看了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将任务放在资源管理器中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spark yarn