基础信息
版本:2.3.0
官网下载 download
支持:Java 8+, Python 2.7+/3.4+ and R 3.1+
Scala :2.11.x
安装完成后,跑一跑
./bin/run-example SparkPi 10
./bin/spark-shell --master local[2]
–master 选项 | 描述 |
---|---|
url | 集群模式下,提交执行程序到主节点为url的机群上 |
local | 本地模式,运行一个线程来执行程序,用于测试 |
local[N] | 本地模式,运行N个线程来执行程序 ,用于测试 |
Spark应用程序相关概念
Spark application(Spark应用程序):一组运行在Spark集群上的进程集合,由一个Driver Program,多个Executor进程组成。前面使用的spark-shell就是一个应用程序
单个应用程序架构组成如下图:
Driver Program(驱动程序):一个使用java或scala编写,并在其中初始化SparkContext、创建RDD进行一系列转换或行动的main方法。调度、监控Executor,并与之交互数据
Cluster Manager(集群管理器):Spark自身standalone模式集群管理器或其他第三方Mesos 、YARN管理器,给应用程序分配资源
Work Node(工作节点):跑应用程序进程的机器
Executor(干活的人):干活的jvm。执行应用程序计算任务,存储数据,返回数据给driver
Cache(缓存数据):执行中缓存使用的数据
Task(任务):执行计算任务
其他相关概念
Deploy mode(部署模式):区分driver在哪里运行。若是cluster,则把driver运行在集群上。若是cluster,则把driver运行在集群外,一般就是在提交本地
Job(作业):由多个Task并行执行组成的计算,由action操作触发。
Stage(阶段):一组按规则划分的Task集合
Spark应用的提交
使用spark-submit 来提交应用程序到集群
Spark应用的监控
每一个Driver Program都有一个WebUI,端口默认4040,用于查看Task、Executor运行状况及空间用量。使用浏览器浏览http://< driver-node >:4040即可