主页 > 新闻资讯 > Spark总结:关于Spark系统的全面总结

Spark总结:关于Spark系统的全面总结

作者:张老师 浏览次数: 2020-02-14 18:46
Spark作为一个优秀的大数据计算引擎,继承了Hadoop的分布式并行计算优势,并且将这些优势发挥得更好,从而大大地提升了数据计算的性能。关于Spark计算框架,其中涉及到的知识点也很多,今天我们就来做一个归纳性的总结。

Spark总结

一、Spark的本质

Spark的本质就是一个分布式的计算框架,基于MapReduce的分布式并行计算思想,但是拓展了所支持的算法,能够满足更多场景下的大数据计算任务。

二、Spark解决了什么问题

①最大化利用内存cache

②中间结果放内存,加速迭代

③将结果集放内存,加速后续查询和处理,解决运行慢的问题

④更丰富的API(Transformation类和Actions类)

⑤完整作业描述,将用户的整个作业串起来

⑥由于Excutor进程可以运行多个Task线程,因而实现了多线程的操作,加快了处理速度

三、Spark核心—RDD

Spark核心抽象概念,就是RDD,弹性分布式数据集,提供了更优化的数据模型。

–RDD使用户能够显式将计算结果保存在内存中,控制数据的划分

–记录数据的变换和描述,而不是数据本身,以保证容错

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

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

RDD的四种构建方法:

–从共享文件系统中获取,如从HDFS中读数据构建RDD

•val a=sc.textFile(“/xxx/yyy/file”)

–通过现有RDD转换得到

•val b=a.map(x=>(x,1))

–定义一个scala数组

•val c=sc.parallelize(1 to 10,1)

–由一个已经存在的RDD通过持久化操作生成

•val d=a.persist(),a.saveAsHadoopFile(“/xxx/yyy/zzz”)

四、Spark系统架构

①Excutor的内存分为三块:

1)task执行代码所需的内存,占总内存的20%;

2)task通过shuffle过程拉取上一个stage的task的输出后,进行聚合操作时使用,占20%;

3)让RDD持久化时使用,默认占executor总内存的60%。

②Excutor的cpu core:

每个core同一时间只能执行一个线程

看完上面这份Spark总结,相信大家对于Spark系统当中的概念及理论等知识都有了更深的印象,作为大数据领域的一个优秀的计算引擎,未来的Spark还有更大的发展空间,也需要大家更加深入地学习和掌握。成都加米谷大数据,专业大数据培训机构,大数据技术分享,更多详情可联系客服了解!
热点排行
推荐文章
立即申请>>