spark简介


Apache Spark™ is a fast and general engine for large-scale data processing.
------------------------------------------------------------------------

简介:
spark是一个分布式并行数据处理框架,可以与Hadoop联合使用,增强Hadoop的性能。同时,Spark还增加了内存缓存、流数据处理、图数据处理等更为高级的数据处理能力。

saprk特点:

  • 高可伸缩性
  • 主要基于内存(少数情况基于磁盘)
  • 高容错

spark运行模式:

○ Local (用于测试、开发)
○ Standlone (独立集群模式)
○ Spark on Yarn (Spark在Yarn上)
○ Spark on Mesos (Spark在Mesos)

sprk数据处理流程:

  • 数据输入(从数据源获取数据)//本地/hdfs/数据库

  • 数据处理(ETL等)//map

  • 数据输出(数据持久化)//分布式文件系统/本地

  • 结果展示(如:图表形式)//reduce

spark中的RDD:

  • 弹性分布式数据集,是数据加载到内存中的一个抽象
  • 它本身运行于内存中,提供了一种共享内存模型
  • 通过RDD可以执行map、flatMap和join等操作
  • rdd是一系列分片,类似于Hadoop中的split
  • 每个分片上都要一个函数去计算、执行、迭代它
  • 会形成相互依赖,如:rdda转换为rddb,rddb转换为rddc,那么rddc就依赖rddb,rddb就依赖rdda

RDD的特点:

  1. RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。
  2. RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
  3. RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
  4. RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDDpartition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
  5. RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)

RDD的计算类型:

  1. Transformation:延迟执行,一个RDD通过该操作产生的新的RDD时不会立即执行,只有等到Action操作才会真正执行。
  2. Action:提交Spark作业,当Action时,Transformation类型的操作才会真正执行计算操作,然后产生最终结果输出。
  3. Hadoop提供处理的数据接口有Map和Reduce,而Spark提供的不仅仅有map和reduce,还有更多对数据处理的接口

spark容错基本概念:

每个RDD都会记录自己所依赖的父RDD,一旦出现某个RDD的某些partition丢失,可以通过并行计算迅速恢复

RDD的依赖又分为Narrow Dependent(窄依赖)和Wide Dependent(宽依赖):

  • 窄依赖:每个partition最多只能给一个RDD使用,由于没有多重依赖,所以在一个节点上可以一次性将partition处理完,且一旦数据发生丢失或者损坏可以迅速从上一个RDD恢复

  • 宽依赖:每个partition可以给多个RDD使用,由于多重依赖,只有等到所有到达节点的数据处理完毕才能进行下一步处理,一旦发生数据丢失或者损
    坏,则完蛋了,所以在这发生之前必须将上一次所有节点的数据进行物化(存储到磁盘上)处理,这样达到恢复。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值