首页>>互联网>>大数据->大规模计算引擎Spark编程

大规模计算引擎Spark编程

时间:2023-11-29 本站 点击:0

1.1 大数据时代

1.1.1 第三次信息化浪潮

第三次信息化浪潮

1.1.2 信息科技为大数据时代提供技术支撑

存储设备容量不断增加

CPU处理能力大幅提升

网络带宽不断增加

1.1.3 数据产生方式的变革促成大数据时代的来临

1.2 大数据概念

1.2.1 数据量大

根据IDC作出的估测,数据一直都在以每年50%的速度增长,也就是说每两年就增长一倍(大数据摩尔定律)

人类在最近两年产生的数据量相当于之前产生的全部数据量

预计到2020年,全球将总共拥有35ZB的数据量,相较于2010年,数据量将增长近30倍

1.2.2 数据类型繁多

大数据是由结构化和非结构化数据组成的

10%的结构化数据,存储在数据库中

90%的非结构化数据,它们与人类信息密切相关

科学研究

基因组、LHC 加速器、地球、与空间探测

企业应用

Email、文档、文件、应用日志、交易记录

Web 1.0数据

文本、图像、视频

Web 2.0数据

查询日志/点击流、Twitter/ Blog / SNS、Wiki

1.2.3 处理速度快

从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少

1秒定律:这一点也是和传统的数据挖掘技术有着本质的不同

1.2.4 价值密度低

价值密度低,商业价值高

以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒,但是具有很高的商业价值

1.3 大数据的影响

图灵奖获得者、著名数据库专家Jim Gray 博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论、计算和数据四种范式

在思维方式方面,大数据完全颠覆了传统的思维方式

全样而非抽样

效率而非精确

相关而非因果

1.4 大数据关键技术

大数据技术的不同层面及其功能

两大核心技术

1.5 大数据计算模式

1.6 代表性大数据技术

1.6.1 Hadoop

Hadoop—MapReduce

MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce

编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算

MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。

Hadoop—YARN

YARN的目标就是实现“一个集群多个框架”,为什么?

一个企业当中同时存在各种不同的业务应用场景,需要采用不同的计算框架

MapReduce实现离线批处理

使用Impala实现实时交互式查询分析

使用Storm实现流式数据实时分析

使用Spark实现迭代计算

这些产品通常来自不同的开发团队,具有各自的资源调度管理机制

为了避免不同类型应用之间互相干扰,企业就需要把内部的服务器拆分成多个集群,分别安装运行不同的计算框架,即“一个框架一个集群”

导致问题

集群资源利用率低

数据无法共享

维护代价高

YARN的目标就是实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架

由YARN为这些计算框架提供统一的资源调度管理服务,并且能够根据各种计算框架的负载需求,调整各自占用的资源,实现集群资源共享和资源弹性收缩

可以实现一个集群上的不同应用负载混搭,有效提高了集群的利用率

不同计算框架可以共享底层存储,避免了数据集跨集群移动

1.6.2 Spark

Hadoop与Spark的对比

Hadoop存在如下一些缺点:表达能力有限

磁盘IO开销大

延迟高

任务之间的衔接涉及IO开销

在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务。

Hadoop与Spark的对比

Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题

相比于Hadoop MapReduce,Spark主要具有如下优点:

Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活

Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高

Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制

1.6.3 Flink

性能对比

首先它们都可以基于内存计算框架进行实时计算,所以都拥有非常好的计算性能。经过测试,Flink计算性能上略好。

Spark和Flink全部都运行在Hadoop YARN上,性能为Flink > Spark > Hadoop(MR),迭代次数越多越明显,性能上,Flink优于Spark和Hadoop最主要的原因是Flink支持增量迭代,具有对迭代自动优化的功能。

流式计算比较

它们都支持流式计算,Flink是一行一行处理,而Spark是基于数据片集合(RDD)进行小批量处理,所以Spark在流式处理方面,不可避免增加一些延时。Flink的流式计算跟Storm性能差不多,支持毫秒级计算,而Spark则只能支持秒级计算。

SQL支持

都支持SQL,Spark对SQL的支持比Flink支持的范围要大一些,另外Spark支持对SQL的优化,而Flink支持主要是对API级的优化。

1.6.4 Beam

后语

厂长写博客目的初衷很简单,希望大家在学习的过程中少走弯路,多学一些东西,对自己有帮助的留下你的赞赞?或者关注➕都是对我最大的支持,你的关注和点赞给厂长每天更文的动力。

对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!

微信(z613500)或者 qq(1016942589) 详细交流。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/BigData/1228.html