JIANGzihao0222

导航

 

  本次学习了Spark概述,了解了Spark的一些基本概念,为更好的学习

基于内存计算的分布式框架,拥有良好的性能,运行速度快,采用内存计算

scala简介

运行再jvm上,具有强大并发性,支持函数式编程,语法简洁,兼容java,交互式语言

Spark与Hadoop比较

Hadoop:磁盘io开销大,表达能力有限,延迟高,map未结束reduce开启不了

Spark:提供多种据集操作类型,基于内存计算,迭代效率高

Spark生态系统

基于一个软件栈可以满足不同应用场景的理念,满足不同场景的应用

基本概念和架构设计

Spark运行基本流程

1、Driver -> SparkContext(解释器模式下自动创建好sc,编程下需new) -> 进行资源申请 -> SparkContext进行任务的分配与监控

2、为Executor分配资源

3、SparkContext根据RDD的依赖关系生成有向完成图,解析成Stage,里面包含很多个Task,交给TaskSchedule,Executor向SparkContext进行申请Task,根据计算向数据靠拢原则进行选择Executor,TaskSchedule将Task交给Ececutor进行运行

4、Task再Executor进行计算,最后返回数据

RDD

概念

是一个分布式对象集合,只读记录集合,可以有多个分区,可以保存到不同物理存储上,编程模型更加灵活

操作

具体操作分为动作、转换两种类型:转换操作不进行计算,记录转换的轨迹;动作操作进行计算,进行动作计算从头开始沿着轨迹开始进行计算

执行过程

RDD读入外部数据源进行创建,RDD进行一系列转换操作,每一次都会产生不同的RDD供给下一个RDD,

优点:惰性调用,管道化,避免等待

特性

具有高效容错性,采用记录日志:记录有向无环图的轨迹,只记录粗粒度操作,代价很小

RDD依赖关系和运行过程

依赖关系:窄依赖、宽依赖

窄依赖:一个父RDD对一个子RDD或多个父RDD对一个子RDD

宽依赖:一个父RDD的一个分区对多个子RDD或多个父RDD对多个子RDD

运行过程:先进行Stage划分,遇到窄依赖直接添加,遇到宽依赖断开,将RAG进行划分,进行生成Task任务,进行执行

Spark的部署和应用方式

用Spark可以一栈式架构满足批处理和流计算

可以和hadoop一起架构。

Spark是计算框架,取代hadoop的计算框架:MapReduce,但对于hadoop生态的其他框架,Spark替换不了

posted on 2024-01-21 20:46  实名吓我一跳  阅读(10)  评论(0)    收藏  举报