Spark框架,作为Hadoop之后的第二代主力框架,在大数据生态圈的地位,是得到肯定的。Spark框架在部署运行商,支持三种模式,对于初学者而言,常常搞不明白三种模式的区别。今天的大数据开发学习分享,我们就来讲讲Spark三种部署运行模式。
spark三种部署模式
1.local模式:是运行在一台计算机上的,通常是用来做测试;
2.standalone模式:这个模式是spark自带资源调度引擎,构建成master+wordker的spark集群,这是由于该框架开发时,hadoop还有发布2.x版本,并没有yarn(资源调度),所以自己开发带有了资源调度的功能,但是由于该模式对集群的性能要求太高,在生产中使用相对较少;
3.使用yarn(模式),该模式下是使用hadoop带有资源调度yarn来运行spark程序。
从实际的应用场景来说,通过Yarn来进行调度还是占据主流的选择。
Yarn模式的工作流程
Yarn模式中有两种运行提交任务的方式,yarn-client运行模式和yarn-cluster运行模式,两者最主要的区别在于driver的运行节点的不同。
yarn-client:driver程序运行在客户端,适用于交互,调试,希望立即看到程序的运行的结果;
yarn-cluster:driver程序运行在ResourceManager启动的APPMaster,在生产环境中使用;
client模式:提交程序
bin/spark-submit\
--class org.apache.spark.examples.SparkPi\
--master yarn\
--deploy-mode client\
./examples/jars/spark-examples_2.12-3.0.0.jar\
10
在client模式下程序执行完后会直接在客户端显示执行的结果,可以直接看到。
cluster模式:提交程序
bin/spark-submit\
--class org.apache.spark.examples.SparkPi\
--master yarn\
--deploy-mode cluster\
./examples/jars/spark-examples_2.12-3.0.0.jar\
10
这种模式下需要登录yarn的web界面中查看执行情况;
两种模式下的RM(ResourceManager)和NodeManager分别是yarn中的两个角色,作用是管理调度资源(cpu和内存)及执行任务;
Spark三种部署模式的区别
单机:
local[n]单机伪分布式模式,n个线程分别充当driver和Executors,由于driver和Executors处于同一个jvm,算子可以访问外部的变量。
集群:
standalone spark worker组成集群,Spark内置的集群搭建模式。适合于不太依赖Hadoop的运算环境,或者存储集群和计算集群分离的场景。
yarn运行与Hadoop Yarn集群之上。作业调度、资源调度由Yarn分配。Yarn在这方面做得比Spark standalone集群好,适用于存储计算合一,或者需要依赖MR、Hive等作业的场景。
部署模式:
client driver运行于执行spark-submit脚本的机器上。这机器不一定是集群的节点,你可以在Windows上运行driver,Linux集群运行Executors。cluster作业提交后,driver运行于集群上的某一个节点上,集群视其为一个Executor,相当于后台程序。
standalone和yarn都支持client/cluster两种模式。前者由--master参数控制,后者由deploy-mode参数控制。
关于大数据开发学习,Spark三种部署运行模式,以上就为大家做了大致的介绍了。Spark的搭建和部署,是初学入门阶段需要多去练习的,尤其是Yarn模式,需要多去练习掌握。
网友评论