我们知道Spark可以运行在不同模式下,这样的话当我们提交程序给Spark集群时就要修改相应的参数设置,在Spark学习的最后,我总结了几种常用模式下的运行命令(在Linux下运行) PS:下文提到过的jar包是这样来的,我是在Windows下的eclipse中用scala语言编写的程序,所以我把程序导出为一个jar包,之后再传到Linux中相应的目录下 yarn模式: ./bin/spark-submit --class order_apriori.apriori\ //app路径 --master yarn-client \ //运行模式 --num-executors 3 \ //executor的个数 --driver-memory 4g \ //主节点内存大小 --executor-memory 2g \ //executor的内存大小 --executor-cores 1 \ //executor的CPU的个数 /home/hadoop/cd/spark_cd.jar \ //app所在jar包 local模式: ./bin/spark-submit --class cd_yarn.WordCount\ --master local[2] \ --num-executors 3 \ --driver-memory 4g \ --executor-memory 2g \ --executor-cores 1 \ /home/hadoop/cd/spark_test.jar\ standalone模式: ./bin/spark-submit --class cd_yarn.WordCount\ --master spark://192.168.137.5:7077 \//spark://主节点的外网IP:7077 --num-executors3 \ --driver-memory 512m \ --executor-memory 216m \ --executor-cores 1 \ /home/hadoop/cd/spark_test.jar \ 其中yarn模式和local模式可以不需要开启spark,standalone模式需要开启spark(因为standalone模式是Spark自身的资源管理方式),此外yarn和local模式允许的内存比standalone模式要大,因此可能性能要好点 此外,mesos模式我没有运行过,因此也不是很清楚,就省略不讲了。。。。。 最后的最后,用一张图将我所理解的Spark的架构表示出来,由于画图水平有限,因此该图不能将我所有的理解很完美地表现出来,只有待日后进行完善了 其中DAGScheduler部分,TaskScheduler部分,BlockManager部分指的就是前面讲述这三者的内容时所画的图,因为能力有限,所以不能将其一一画出,不过借助前面的内容加上此图,应该可以对Spark的架构进行比较基础的理解了吧 Spark这部分基本上讲完了,下篇博文中我将进行一些收尾工作,当做是对自己学习Spark的一个总的回顾吧。。。 未完待续。。。