什么事spark
Spark是一种快速、通用、可扩展的大数据计算引擎.项目是用Scala进行编写,基于内存计算的
包括交互式查询和流处理
spark内置项目
Spark SQL:是 Spark 用来操作结构化数据的程序包。
Spark Streaming:是 Spark 提供的对实时数据进行流式计算的组件。
Spark MLlib:提供常见的机器学习(ML)功能的程序库。
GraphX:提供一个分布式图计算框架,能高效进行图计算。
集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计 算。
spark常用术语
Application Spark的应用程序,包含一个Driver program和若干Executor
SparkContext Spark应用程序的入口,负责调度各个运算资源,协调各个Worker Node上的Executor
Driver Program 运行Application的main()函数并且创建SparkContext
Executor 是为Application运行在Worker node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。
每个Application都会申请各自的Executor来处理任务
ClusterManager 在集群上管理各种资源的外部服务(例如:Standalone、Mesos、Yarn)
Worker Node 集群中任何可以运行Application代码的节点,运行一个或多个Executor进程,每个节点可以起一个或多个Executor
Task 运行在Executor上的工作单元,每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task,每个Task执行的结果就是生成了目标RDD的一个partiton
Job SparkContext提交的具体Action操作,常和Action对应
Stage 每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSet
RDD 是Resilient distributed datasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类
DAGScheduler 根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler
TaskScheduler 将Taskset提交给Worker node集群运行并返回结果
Transformations 是Spark API的一种类型,Transformation返回值还是一个RDD, 所有的Transformation采用的都是懒策略,
如果只是将Transformation提交是不会执行计算的
Action 是Spark API的一种类型,Action返回值不是一个RDD,而是一个scala集合;计算只有在Action被提交的时候计算才 被触发。