hadoop的mapreduce计算过程:
input ->map -partitions-merge-reduce-output
mapReduce慢的原因:频繁的写磁盘导致额外的复制以及IO开销
Spark:
术语 | 解释 | |
0 | Application | 基于Spark的用户程序,包含了driver和集群上的executer |
1 | Driver Program | 运行main函数并且新建SparkContext的程序 |
2 | Executor | 在一个worker node上为某应用启动的一个进程,该进程负责运行任务,兵器负责将数据存在内存或者磁盘上,每个应用都有各自独立的exectors |
3 | Cluster Manager | 在集群上获取资源的外部服务 |
4 | worker Node | 集群中可以任何运行引用代码的节点 |
5 | Task | 被送到某个exector上的工作单元 |
6 | Job | 包含很多任务的并行运算,可以看做和spark的action对应 |
7 | Stage | Job会被拆分为很多组任务,每组任务被称为stage |
Application的组成:由0-7组成
核心概念
RDD
窄依赖,一系列的转换操作,下一个rdd依赖的父rdd只有1个
宽依赖,下一个rdd依赖的父RDd大于1个
优缺点:窄依赖放在一个节点操作,可以提高执行效率
partition为最小单位,分片。哪一步出错,返回父rdd重新执行即可,这就是spark的容错性。