内存计算--Spark

本文探讨了并行计算的需求,尤其是内存计算在应对大数据处理中的挑战。Spark作为一种高性能优化的计算框架,通过其Resilient Distributed Datasets (RDD) 提供了高效的容错能力。RDD基于确定性的粗粒度操作,数据不可变,通过延迟估值和数据划分优化性能。Spark支持多种编程接口,如Scala、Java和Python,并构建了一个统一的编程框架,适合多阶段任务和交互式查询,但对细粒度数据更新的处理效率较低。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 并行计算回顾

原因:

计算量大:单进程算得不够快

内存需求大:内存随机访问比硬盘随机访问快10万倍,单机内存不够大

I/O量大:单个硬盘读写I/O太慢

 

挑战:

编程困难:并行性、同步语句

性能调优难:负载平衡、局部性(Cache)

容错难:传统容错方法不适用(锁步法)

 

大数据处理并行系统:

编程模型、容错能力、性能与成本

MapReduce:编程模型简单(Map&&Reduce),容错简单,成本低,性能较差

Spark:性能优化(内存计算),限制了编程模型(确定性的粗粒度操作),确保高效率的容错能力

 

2. 内存计算的需求

更复杂的多阶段任务、交互式查询(实时)

MapReduce局限性:表达能力有限,复杂任务需要迭代(需要将中间结果保存在硬盘上,大量的I/O操作),只能做离线分析

 

MapReduce中用文件传递函数,中间结果保存在硬盘上,如果能用内存保存中间结果?

可行性

内存是否足够大、性价比如何、放在内存里如何容错、内存里的数据如何高效表示

 

3. 传统内存抽象

如何抽象多台机器的内存?

--分布式共享内存

--分布式键-值存储

容错机制:

--副本/log(增加了网络的开销)

优缺点:

允许细粒度的操作,但是容错困难。

 

4. Spark

设计理念:注重效率与容错

RDD(Resilient Distributed Datasets):高效的容错方法

--基于数据集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值