spark 概念
spark 特点
- DAG引擎,减少过程写入磁盘开销
- 内存计算引擎,支持cache机制,使得中间过程数据可以保留
- 多线程模式,(mapreduce是批处理基于进程的,每一次计算就要开启一个jvm;而spark基于基于线程的,减少进程启动开销)
- spark比mapreduce的优势:对于中间状态可以被捕获。
RDD(Resilience Distributed Datassets) 弹性分布式数据集
1. 操作动作
创建(create)
来源于内存集合或hdfs上文件转换(transform)
从一个RDD到另一个RDD控制(control)
进行RDD持久化,如chache,persist行动(action)
输出结果行为.如保存文件/执行reduce操作.
2. RDD特点
- 惰性执行(有action才执行)
- 应用cache后的结果不会触发RDD.即,当存在多个action是,如果没有cache,则进行多次。
程序架构
driver
负责运行application,并创建和变比SparkContext.yarn-master模式下,driver为yarn;yarn-client模式下,driver为客户端.-
cluster manager
集群yarn.分为几种模式:local, standalone, yarn/mesos,- worker node : 类似于NodeManager
- executer: 执行进程.用于分配任务给task,一个workerNode有多个executer
- task: 执行线程.执行RDD任务.
- cache:用于RDD的中间过程
其他
- spark 环境执行优先级:
- spark program:set conf
- spark submit
- spark default conf
- spark的shuffle也是要存在executer上的本地硬盘上。
- 每个map行为成为一个job,当存在shuffle是spark必须重新分配资源.每一个阶段成为stage