WDPS - Large scale systems 1

Large scale systems

the problem of scale - growth

Hadoop Assumptions

  1. Simple primitives go a long way.
    map:过滤、筛选、检查输入数据并写入本地磁盘中
    reduce:远程读入map的本地输出结果,并进行归并分析等,再写入HDFS中
  2. Computation is too expensive for one machine
  3. Data too big to fit in one machine (introduction of HDFS)
  4. Commodity machines are cheap and fail often

Spark Assumptions ( 2,3 and 4 same as Hadoop ones)

  • MapReduce 的两大局限性
  1. Lots of disk I/Os (因为Map和Reduce要在HDFS写入写出嘛)
  2. Inability to perform iterative computation

Spark 生态系统的目标就是将批处理、交互式处理、流式处理融合到一个软件框架内。Spark 是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。
Spark 允许应用在内存中保存工作集以便高效地重复利用,它支持多种数据处理应用,同时也保持了 MapReduce 的重要特性,如高容错性、数据本地化、大规模数据处理等。

Spark是Hadoop的一个扩展: generalised MapReduce to support more operations than Map / Reduce.

  • 2 Additions: (使得Spark能够拥有比Hadoop更快速度的特性是DAG scheduler和内存读取)
  1. Fast data sharing
  2. General DAGs (一个DAG可以包括多个AG,DAG除了可以提升scheduler的效率,还是Lineage追溯的基础)

DAG - 有向无环图
相对于传统线性区块链,DAG 优势在于速度快,吞吐量高,由于 DAG 采用的图式网络,每个节点无需等待其它节点的数据,可以异步处理交易,避免了因等待造成的时间浪费。
DAG是Spark中任务的物理执行图,由stage组成,stage内任务流水线并行化执行保证效率,stage间先后依次执行保证结果正确。本章通过对DAG的生成逻辑、执行时的操作以及用户的driver程序如何触发DAG的执行等进行分析,了解了Spark在该部分的实现逻辑。
一分钟了解DAG
Spark DAG 详解

Core abstraction: RDD 弹性分布式数据集 (Resilient Distributed Datasets)

RDD全称叫做弹性分布式数据集(Resilient Distributed Datasets),它是一种分布式的内存抽象,表示一个只读的记录分区的集合,它只能通过其他RDD转换而创建,为此,RDD支持丰富的转换操作(如map, join, filter, groupBy等),通过这种转换操作,新的RDD则包含了如何从其他RDDs衍生所必需的信息,所以说RDDs之间是有依赖关系的。基于RDDs之间的依赖,RDDs会形成一个有向无环图DAG,该DAG描述了整个流式计算的流程,实际执行的时候,RDD是通过血缘关系(Lineage)一气呵成的,即使出现数据分区丢失,也可以通过血缘关系重建分区,总结起来,基于RDD的流式计算任务可描述为:从稳定的物理存储(如分布式文件系统)中加载记录,记录被传入由一组确定性操作构成的DAG,然后写回稳定存储。另外RDD还可以将数据集缓存到内存中,使得在多个操作之间可以重用数据集,基于这个特点可以很方便地构建迭代型应用(图计算、机器学习等)或者交互式数据分析应用。可以说Spark最初也就是实现RDD的一个分布式系统,后面通过不断发展壮大成为现在较为完善的大数据生态系统,简单来讲,Spark-RDD的关系类似于Hadoop-MapReduce关系。
RDD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值