Spark作为一个优秀的大数据计算引擎,继承了Hadoop的分布式并行计算优势,并且将这些优势发挥得更好,从而大大地提升了数据计算的性能。关于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还有更大的发展空间,也需要大家更加深入地学习和掌握。成都加米谷大数据,专业
大数据培训机构,大数据技术分享,更多详情可联系客服了解!