spark运行模式
来源:互联网 发布:redis存储数据大小 编辑:程序博客网 时间:2024/05/01 11:20
spark运行模式列表
基本上,spark的运行模式取决于传递给sparkcontext的deployMode和master环境变量的值,个别模式还需要辅助的程序接口来配合使用,目前master有LOCAL、YARN 、STANDALONE 、MESOS 模式。而deploy-mode必须是cluster、client的一种
spark 1.6里面用数字表示了启动的模式
// Cluster managers private val YARN = 1 private val STANDALONE = 2 private val MESOS = 4 private val LOCAL = 8 private val ALL_CLUSTER_MGRS = YARN | STANDALONE | MESOS | LOCAL // Deploy modes private val CLIENT = 1 private val CLUSTER = 2 private val ALL_DEPLOY_MODES = CLIENT | CLUSTER // Set the cluster manager val clusterManager: Int = args.master match { case m if m.startsWith("yarn") => YARN case m if m.startsWith("spark") => STANDALONE case m if m.startsWith("mesos") => MESOS case m if m.startsWith("local") => LOCAL case _ => printErrorAndExit("Master must start with yarn, spark, mesos, or local"); -1 } // Set the deploy mode; default is client mode var deployMode: Int = args.deployMode match { case "client" | null => CLIENT case "cluster" => CLUSTER case _ => printErrorAndExit("Deploy mode must be either client or cluster"); -1 }
总体上来说,这些运行模式都基于一个相似的工作流程,不同运行模式的主要区别就在于他们有自己特定的资源分配和任务调度模块,用来执行实际的计算任务。1、standalone:需要部署spark到相关节点,包括master和worker2、yarn-cluster:driver和executor都运行在yarn集群中3、yarn-client:driver运行在本地,executor运行在yarn集群中
Spark基本工作流程
spark的application在运行的时候,首先在driver程序中会创建sparkcontext作为调度的总入口,在其初始化过程中会分别创建DAGScheduler进行stage调度和TaskScheduler进行task调度两个模块,DAGScheduler模块是基于stage的调度模块,它为每个spark job计算具有依赖关系的多个stage任务阶段,然后将每个stage划分为具体的一组任务(通常会考虑数据的本地性等)以taskset的形式提交给底层的TaskScheduler模块来具体执行,TaskScheduler负责具体启动任务,监控和汇报任务情况,而任务运行所需要的资源需要向cluster Manager申请
每个spark application都有自己的executor进程,此进程的生命周期和整个application的生命周期相同,此进程内部维持着多个线程来并行的执行分配给它的task,这种运行形式有利于进行不同application之间的资源,调度隔离,但也意味着不同application之间难以做到相互通信和信息交换
由于driver负责所有任务调度,所以它应该尽可能的靠近worker节点,如果能在一个网络中那就更好不过了,
目前常用spark-submit工具来提交spark application,其基本提交格式为
./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments]
其他参数中可以指定driver和executor相关的配置信息可以见官网
http://spark.apache.org/docs/1.6.2/configuration.html
- spark-07-spark 运行模式
- Spark的运行模式
- Spark集群运行模式
- yarn模式运行spark
- spark运行模式
- Spark运行模式
- Spark运行模式
- spark运行模式
- Spark运行模式
- Spark运行模式
- Spark的运行模式
- Spark运行模式
- Spark运行模式
- Spark的运行模式
- spark 运行log cluster 模式
- Spark 运行模式 standalong & yarn
- spark运行模式一些概念
- spark设置本地运行模式
- CSU 1809 Parenthesis 【前缀和+RMQ】
- 关于自定义view, 本人的总结以及看法
- 自定义Qt部件——盒状模型
- 开发时遇到的好玩的终端命令
- 【Spring学习笔记】AOP
- spark运行模式
- 【Android】51、动态添加碎片
- [LeetCode]Maximal Rectangle寻找最大矩形
- 关于struts2 2.5.2 的入门 遇到的问题 --总结1
- 继承、多态、封装、抽象类与接口
- CS231n第五课:神经网络2学习记录
- 自己做的购物系统
- POJ 3254 Corn Fields 状态压缩dp入门
- xml解析库xerces学习笔记一