spark的认识和ddr的算子

版权声明:数据丁 https://blog.csdn.net/reasery/article/details/83241089

1.mapreduce因为磁盘io的限制,是系统的瓶颈,所以只适合离线数据处理或批处理,不支持迭代式,交互式和流数据处理,这些事spark擅长的内容
2.spark的优点:

1.减少磁盘io,直接从内容读取数据
2.增加并行度,一个线程执行一个任务
3.避免重复计算,可以cache或者prisit持久化到缓存中
4.可选的shuffle和排序
5.灵活的内存管理策略,每个任务自己的内容是堆内内存,共享内存是堆外内存
6.部署模式:standalone,yarn,cloud等
其中有三个比较重要的概念:
1.编程入口:sparkcontext
	隐藏了各种内容,并且内置了DAGscheduler(大脑)和Taskscheduler(秘书),计算引擎由DAGscheduler负责将rdd组成有向无环图并且提交任务执行
	存在于driver当中
2.数据抽象:rdd
3.算子:map等
扩展功能:
sparksql,sparkStreaming,SparkMLLib,SparkGragh等
提交到核心执行引擎sparkcore进行执行

3.RDD的概念

1.弹性分布式数据集,核心抽象数据描述
2.创建rdd可以通过并行化一个scala数据集或者makerdd或者读取外部存储系统的数据集textfile
3.rdd的partitioner类似于maprdece的分区
4.窄依赖:父分区有一个个子分区;宽依赖:父分区有多个子分区
或者就是看是否存在shuffle过程,存在就是宽依赖
5.DAGscheluder会根据rdd的算子操作的宽窄依赖构建DAG,然后进行DAG切分,遇到宽依赖就会划分一个stage

猜你喜欢

转载自blog.csdn.net/reasery/article/details/83241089