Spark
RDD的五大特性
- RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况)
- RDD是有一系列的依赖关系,有利于Spark计算的容错
- RDD中每一个算子实际上是作用在每一个partition的
- spark中分区器是作用在kv格式的RDD上的,如果这个RDD中存储的数据是二元组类型的话
- spark中的RDD会提供一系列的最佳位子
大概执行流程
Driver
- 分发task,实际上在分发task之前会调用RDD的一个方法(能够获取每一个partition的位置)
- 会将每一个task的计算结果拉回到Dirver端---大数据处理!!每一个task计算结果有可能会非常的大,容易造成OMM,很危险
- 强调: Driver是一个JVM进程
Woker进程
算子
Transformation类算子
- 特点,懒执行!!需要一个action类算子触发
- 具体的算子 map,filter,reduceByKey,flatMap
Action类算子
- 特点:会立即触发任务的执行
- 具体的算子 foreach,count