sparkRDD

基本概念

       RDD(Resilient Distributed Dataset),弹性分布式数据集,是Spark数据处理的核心抽象

       属性:分区列表、分区函数、RDD依赖、分片函数(只有kv格式数RDD才有,两种函数HashPatitioner和RangePartitioner,不是kv格式的RDD则是none。可选)、数据就近原则(数据在哪里就在哪个节点执行任务或最近的节点。可选)

       弹性:

                1、自动进行内存和磁盘数据存储的转化

                2、基于血统的高效容错机制

                3、Task如果失败会自动进行重试,默认4次

                4、Stage如果失败会自动进行重试,默认4次

                5、CheckPoint(Cache、Persist)可主动或被动触发

                6、数据调度弹性

                7、数据分片的高度弹性

       特点:分区、只读、依赖、缓存、CheckPoint

创建及操作方式

       创建方式:三种,即利用已有的数据集合、利用数据源、RDD转换

       操作方式:两种,即transformation、action,前者不会执行具体操作,只有当action执行时,才会触发执行

依赖关系

       宽依赖、窄依赖、lineage(血统)

缓存

       将计算的每一个RDD缓存在内存中,不管哪里需要都能迅速调用

DAG的生成

      RDD经过一系列的转换,生成一个DAG(有向无环图),从程序最后往前,分成一个个的Stage,Stage划分标准,遇到宽依赖切分为另外一个Stage,若时窄依赖则加入到当前的Stage当中

Spark任务调度

        各个RDD之间存在着依赖关系,这些依赖关系就形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分。DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler。TaskScheduler 负责具体的task调度,最后在Worker节点上启动task。

容错机制

       Persist:在内存和磁盘中各存储一份

       Cache:只在内存中存储一份

       CheckPoint:将数据存到hdfs上

Spark运行架构

       运行流程:

              构建Spark Application的运行环境(启动SparkContext),SparkContext向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源;资源管理器分配Executor资源并启动Executor,Executor运行情况将随着心跳发送到资源管理器上;SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给Task Scheduler。Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行同时SparkContext将应用程序代码发放给ExecutorTask在Executor上运行,运行完毕释放所有资源。

        架构特点:

               1、每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行tasks。

               2、Spark任务与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了。

               3、提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个任务槽,因为Spark程序运行过程中SparkContext和Executor之间有大量的信息交换;如果想在远程集群中运行,最好使用RPC将SparkContext提交给集群,不要远离Worker运行SparkContext。

               4、Task采用了数据本地性推测执行的优化机制。

数据读取与保存的主要方式

       textFile、Json、CSV、SequenceFile、对象文件、hadoop输入输出格式

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值