《Spark大数据处理:技术、应用与性能优化》——第3章 Spark计算模型3.1 Spark程序模型

第3章 Spark计算模型

创新都是站在巨人的肩膀上产生的,在大数据领域也不例外。微软的Dryad使用DAG执行模式、子任务自由组合的范型。该范型虽稍显复杂,但较为灵活。Pig也针对大关系表的处理提出了很多有创意的处理方式,如flatten、cogroup。经典虽难以突破,但作为后继者的Spark借鉴经典范式并进行创新。经过实践检验,Spark的编程范型在处理大数据时显得简单有效。的数据处理与传输模式也大获全胜。
Spark站在巨人的肩膀上,依靠Scala强有力的函数式编程、Actor通信模式、闭包、容器、泛型,借助统一资源分配调度框架Mesos,融合了MapReduce和Dryad,最后产生了一个简洁、直观、灵活、高效的大数据分布式处理框架。
与Hadoop不同,Spark一开始就瞄准性能,将数据(包括部分中间数据)放在内存,在内存中计算。用户将重复利用的数据缓存到内存,提高下次的计算效率,因此Spark尤其适合迭代型和交互型任务。Spark需要大量的内存,但性能可随着机器数目呈多线性增长。本章将介绍Spark的计算模型。

3.1 Spark程序模型

下面通过一个经典的示例程序来初步了解Spark的计算模型,过程如下。
1)SparkContext中的textFile函数从HDFS读取日志文件,输出变量file。
val file=sc.textFile("hdfs://xxx")
2)RDD中的filter函数过滤带“ERROR”的行,输出errors(errors也是一个RDD)。

val errors=file.filter(line=>line.contains("ERROR")

3)RDD的count函数返回“ERROR”的行数:errors.count()。
RDD操作起来与Scala集合类型没有太大差别,这就是Spark追求的目标:像编写单机程序一样编写分布式程序,但它们的数据和运行模型有很大的不同,用户需要具备更强的系统把控能力和分布式系统知识。
从RDD的转换和存储角度看这个过程,如图3-1所示。

https://yqfile.alicdn.com/6223ab45d8c5b95dc2a7b06cd7434292cd9e72e1.png" >

在图3-1中,用户程序对RDD通过多个函数进行操作,将RDD进行转换。Block-Manager管理RDD的物理分区,每个Block就是节点上对应的一个数据块,可以存储在内存或者磁盘。而RDD中的partition是一个逻辑数据块,对应相应的物理块Block。本质上一个RDD在代码中相当于是数据的一个元数据结构,存储着数据分区及其逻辑结构映射关系,存储着RDD之前的依赖转换关系。

时间: 2024-09-20 17:15:33

《Spark大数据处理:技术、应用与性能优化》——第3章 Spark计算模型3.1 Spark程序模型的相关文章

Spark大数据处理系列之Machine Learning

本文是<Spark大数据处理>系列的第四篇,其他三篇:Spark介绍. Saprk SQL和 Spark Streaming . 最近几年,机器学习.预测分析和数据科学主题得到了广泛的关注.Spark的机器学习库(Spark MLlib),包括各种机器学习算法:协同过滤算法.聚类算法.分类算法和其他算法. 在前面的<Spark大数据处理>系列文章,介绍Apache Spark框架,介绍如何使用Spark SQL库的SQL接口去访问数据,使用Spark Streaming进行实时流式

运用大数据处理技术 做好国有企业思想政治工作

在全面深化企业改革和互联网全面普及的新形势下,国有企业思想政治工作面临着许多新情况,国有企业要勇于挑战自我.求新达变,积极推进思想政治工作理念创新.手段创新,要善于运用计算机大数据处理技术,积极构建大数据思想政治工作管控体系,确保职工队伍稳定,使企业思想政治工作焕发出勃勃生机,为企业改革发展提供强有力的思想保障. 运用大数据搭建思想政治工作新平台 针对思想政治工作面临的新情况,国有企业要勇于创新,积极确立"用数据链筑牢生命线"的新理念新思路,立足企业内部网络,运用大数据处理技术,创新做

为什么我们说海量大数据处理技术会火

大数据处理技术正在改变目前计算机的运行模式.我们已经从中获得了大量收益,因为正是大数据处理技术给我们带来了搜索引擎 Google.然而故事才刚刚开始,基于以下几个原因,我们说大数据处理技术正在改变着这个世界:* 它能处理几乎各种类型的海量数据,无论是微博.文章.电子邮件.文档.音频.视频,还是其它形态的数据. * 它工作的速度非常快速:实际上几乎实时. * 它具有普及性:因为它所用的都是最普通低成本的硬件 大数据为以下这些公司提供了解决方案:eBay.Facebook.LinkedIn.Netf

用好大数据处理技术

由于一些技术问题,我国的http://www.aliyun.com/zixun/aggregation/4194.html">社会信用体系还不完善.用好大数据处理技术,是建设诚信体系的一个重要选择. 在建设诚信体系过程中,如何使信用信息公开共享成为主要难点.大数据技术能够将隐藏于海量数据中的信息和知识挖掘出来,为社会经济活动提供依据,从而提高各个领域的运行效率,大大提高整个社会经济的集约化程度.用好大数据技术,发挥大数据的优势,当信用信息可以查询匹配,市场主体的信用状况可以识别,才能让失信

中国获得大数据处理技术话语权的机会有多大?

中国能否在未来3-5年内真正获得大数据处理技术的部分话语权,或许需要考虑以下几个方面的因素: (1)从原始基础发明专利技术入手,控制大数据处理技术的源头. 数据处理技术本质上是人的智力活动的结果,专利技术和方法是人设计的数学规则.计算机是在数学规则约束下的逻辑运行载体.对于一个逻辑运行载体来说,必定存在一个起始入口,而起始入口的数学规则就是原始基础发明方法,后续的应用发明方法必定受原始基础发明方法的约束.比如目前的计算机采用二进制规则以及图灵机模式规则,后续的任何方法都受这两个基础方法的约束.

浅谈大数据处理技术架构的演进

浅谈大数据处理技术架构的演进 任桂禾 王晶 新兴应用对大数据处理技术架构的实时性要求不断提高,这对传统的大数据处理技术架构提出严峻的挑战.必须转变架构满足大数据相关业务的实时性要求.文章介绍Hadoop离线处理架构的瓶颈以及Storm实时处理架构的优点,同时,结合实际项目中变更大数据处理技术架构的经验,阐述在实施架构变更过程中的关键技术,实验结果证明使用变更后的技术架构可以满足业务的实时性要求. 浅谈大数据处理技术架构的演进

盘点九大热门开源大数据处理技术

随着全球企业和个人数据的爆炸式增长,数据本身正在取代软件和硬件成为驱动信息技术行业和全球经济的下一个大"油田". 与PC.web等断层式信息技术革命相比,大数据的最大的不同是,这是一场由"开源软件"驱动的革命.从IBM.Oracle等巨头到雨后春笋般的大数据创业公司,开源软件与大数据的结合迸发出惊人的产业颠覆性力量,甚至VMware这样的过去完全依赖专有软件的厂商都开始拥抱开源大数据工具. 下面,我们就列举九大最热门的大数据开源技术供大家参考. 一.Hadoop A

《Spark大数据处理》—— 读后总结

前几章 工作机制 本文转自博客园xingoo的博客,原文链接:<Spark大数据处理>-- 读后总结,如需转载请自行联系原博主.

Java 程序性能优化《第一章》Java性能调优概述 1.2性能调优的层次

Java 程序性能优化<第一章>1.2性能调优的层次 为了提升系统性能,开发人员开始从系统各个角度和层次对系统进行优化.除了最常见的代码优化外,在软件架构上.JVM虚拟机层.数据库以及操作系统层面都可以通过各种手段进行优化,从而在整体上提升系统的性能. 1.2.1 设计调优 设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行.在软件开发之处,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方案.由于软件设计和架构对整体质量有决定性的影响,所以,设计调优对系统性能的影响

Java 程序性能优化《第一章》Java性能调优概述 1.4小结

Java 程序性能优化<第一章>1.4小结 通过本章的学习,读者应该了解性能的基本概念及其常用的参考指标.此外,本章还较为详细的介绍了与性能调优相关的两个重要理论--木桶原理以及Amdahl定律. 根据木桶原理,系统的最终性能总是由系统中性能最差的组件决定的.因此,改善该组件的性能对提升系统整体性能有重要的作用.而根据Amdahl定律,可以知道只是增加处理器数量对提升系统性能并没有太大的实际意义,必须同时提高程序的并行化比重. 本章还简要的介绍了在软件开发和维护过程中可以进行性能优化的各个阶段