本节内容简单介绍怎么在集群上运行spark 应用程序
1.spark 运行时架构
在集群模式下 ,spark 是采用的主从结构,一个中央协调节点被称为驱动器driver ,多个工作节点被成为执行器 executor 。分别对应多个java 进程,,driver & executor 一起被称为一个spark 应用
spark 应用通过一个叫集群管理器的外部服务来启动 也就是我们熟悉的 standalong & Yarn Mesos and so on
Spark 驱动器是执行应用程序中main 方法的进程,它执行用户编写的用来创建SparkContext 创建 RDD 以及进行RDD 转换和行动操作的codes
驱动器程序在spark 中的主要作用 :
把用户程序转化为任务
为执行器节点调度任务
执行器进程的主要作用 :
他们负责运行组成spark 应用的任务 , 并将结果返回driver 进程
通过自身的块管理器 block manager 为用户程序中要求缓存的RDD提供内存式存储
在本地模式下 spark 驱动程序和执行程序在同一个java 进程中运行
2.使用spark-submit 部署
for Example ,更详细的参数请参考官网
bin/spark-submit my_script.py
./bin/spark-submit
--master spark://hostname:7077
--deploy-mode cluster
--class com.databricks.example.sarpkexample
--name "example program"
--jars de1.jar .de2.jar
--total-executor-cores 300
--executor-memory 10g
myapp.jar "options" "to your application " "go there"
export HADOOP_CONF_DIR=/opt/hadoop/conf
./bin/spark-submit
--master yarn
--py-files files.py
--deploy-mode client
--name example
--queue examplequeue
--num-executors 40
--executor-memory 10g
my_scripty.py
3.集群管理器