大数据学习之路(六)spark

                                                                  spark

什么是spark:spark是一个计算框架

                  MR是一个批量处理框架,和spark里的spark-core一样

 

 

spark和MR的比较:

Spark相比MR速度快,MR作为一个job,在中间环节中结果是落地的(会经过磁盘交换),Spark计算过程中数据流转都是在内存的(减少了对HDFS的依赖)

 MRspark
优点资源隔离,稳定性高,开发过程中不涉及内存锁(互斥锁、读写锁)的开发)多线程模型,速度快,适合低延迟的任务,适合于内存密集型任务
缺点多进程模型,每个任务启动时间长,所以不适合于低延迟的任务稳定性差

spark的运行模式:

 

            (1)单机模式:方便人工调试
            (2)Standalone模式:自己独立一套集群缺点:资源不利于充分利用
            (3)Yarn模式:
                            1)Yarn-Client模式:Driver运行在本地
                                        适合交互调试
                            2)Yarn-Cluster模式:Driver运行在集群(AM)
                                        正式提交任务的模式(remote)

 

   spark与mapReduce作业之间的区别

   spark中:--Application:spark-submit提交的程序

                   --Drive:完成任务调度以及和executor和cluster manager进行协调

                   --Executor:每个spark executor作为一个yarn容器(container)运行

                  --job:和MR中的job不同,MR中的job主要是map和reduce,而spark中的job很好区分,一个算子就是一个job

                  --task:是spark中最新的执行单元,RDD一般带有partition,每个partition在executor上运行就是一个task

                  --stage:是spark中独有的,一般来说一个job会切成一定数量的stage,各个stage按顺序执行

spark中的应用程序

--应用程序:由一个drive program和多个job组成

-job: 由多个stage组成

-stage:对应一个taskset

-taskset:对应一组关联的相互之间没有shullfe依赖关系的task组成

-task:任务完成的最小工作单元

drive program:

-spark的核心组件

-构建sparkContext

-将用户提交的job转化为DAG图

-根据策略将DAG图划分为多个stage,根据分区生成一系列的task

-根据task需求想RM申请资源

-提交任务并检查任务状态

excutor:

– 真正执行task的单元,一个Work Node上可以有多个Executor

spark核心

 Spark基于弹性分布式数据集(RDD)模型,具有良好的通用性、容错性与并行处理数据的能力

• RDD( Resilient Distributed Dataset ):弹性分布式数据集(相当于集合),它的本质是数据 集的描述(只读的、可分区的分布式数据集),而不是数据集本身

• RDD的关键特征:

– RDD使用户能够显式将计算结果保存在内存中,控制数据的划分,并使用更丰富的操作集合来处理

– 使用更丰富的操作来处理,只读(由一个RDD变换得到另一个RDD,但是不能对本身的RDD修改)

– 记录数据的变换而不是数据本身保证容错(lineage)

        • 通常在不同机器上备份数据或者记录数据更新的方式完成容错,但这种对任务密集型任务代价很高

        • RDD采用数据应用变换(map,filter,join),若部分数据丢失,RDD拥有足够的信息得知这部分数据是如何计算得到的,可通过重新计算来得到丢失 的数据

         • 这种恢复数据方法很快,无需大量数据复制操作,可以认为Spark是基于RDD模型的系统

– 懒操作,延迟计算,action的时候才操作

– 瞬时性,用时才产生,用完就释放

spark有两种算子:transformation和action算子

transformations是RDD之间的变换,action会对数据执行一定的操作

 transformations采用懒策略,仅在对相关RDD进行action提交时才触发计算

RDD依赖关系

分为宽依赖和窄依赖,对其原理了解不是很透彻,继续学习,后期会更新在spark深入学习中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值