大数据生态与spark简介

1.1.大数据时代
大数据时代的来临,带来了各行各业的深刻变革。大数据像能源、原材料一样,已经成为提升国家和企业竞争力的关键要素,被称为“未来的新石油”。正如电力技术的应用引发了生产模式的变革一样,基于互联网技术而发展起来的大数据技术,将会对人们的生产和生活产生颠覆性的影响。

1.2.大数据的概念
大数据的特点包含4个层面:数据量大(Volume),数据类型繁多(Variety),处理速度快(Velocity)和价值密度低(Value),统称大数据的“4V”。
① 数据量大:根据IDC作出的估测,数据一直都在以每年50%的速度增长,也就是说每两年就增长一倍(大数据摩尔定律)。人类在最近两年产生的数据量相当于之前产生的全部数据量。预计到2020年,全球将总共拥有35ZB的数据量,相较于2010年,数据量将增长近30倍。
② 数据类型繁多:大数据的数据类型丰富,包括结构化数据和非结构化数据,其中,前者占10%左右,主要是指存储在关系数据库中的数据;后者占90%左右。大数据类型繁多,主要包括邮件、音频、视频、位置信息、链接信息、手机呼叫信息、网络日志等。
③ 处理速度快:大数据时代的很多应用,都需要基于快速生成的数据给出实时分析结果,用于指导生产和生活实践,因此,数据处理和分析的速度通常要达到秒级响应,这一点与传统的数据挖掘技术有着本质的不同,后者通常不要求给出实时分析结果。
④ 价值密度低:大数据价值密度远远低于传统关系数据库中已经有的那些数据。在大数据时代,很多有价值的信息都是分散在海量数据中的。

1.3 大数据的关键技术

1.3.1 大数据基本处理流程
大数据的基本处理流程,主要包括数据采集、储存管理、处理分析、结果呈现等环节。因此,从数据分析全程的角度来看,大数据技术主要包括数据采集与预处理、数据存储与管理、数据处理与分析、数据可视化、数据安全与隐患保护等几个层面的内容在这里插入图片描述
1.3.2 大数据计算模式
大数据技术及其代表性种类繁多,不同的技术都有其适用和不适用的场景。总而言之,不同的企业应用场景,都对应着不同的大数据计算模式,根据不同的大数据计算模式,可以选择相应的大数据计算产品。
在这里插入图片描述

1.4 代表性大数据技术

1.4.1 Hadoop
在这里插入图片描述

①HDFS(分布式文件系统):HDFS是针对谷歌分布式文件系统的开源实现,它是Hadoop两大核心组成部分之一,提供了在廉价服务器集群中进行大规模分布式文件存储的能力。HDFS具有很好的容错能力,并且兼容廉价的硬件设备,因此,可以以较低的成本利用现有机器实现大流量和大数据量的读写。
②MapReduce是一种分布式并行编程模型,用于大规模数据集(大于1TB)的并行运算,他将复杂的、运行与大规模集群上的并行计算过程高度抽象为两个函数:Map和Reduce。极大地方便了分布式编程工作,编程人员在不会分布式并行编程的情况下,也可以很容易地将自己的程序运行在分布式系统上,完成海量数据集的计算。MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理
在这里插入图片描述

③YARN是负责集群资源调度管理的组件。YARN的目标就是实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN。
在这里插入图片描述

YARN的目标就是实现“一个集群多个框架”,为什么?
一个企业当中同时存在各种不同的业务应用场景,需要采用不同的计算框架
MapReduce实现离线批处理
使用Impala实现实时交互式查询分析
使用Storm实现流式数据实时分析
使用Spark实现迭代计算

这些产品通常来自不同的开发团队,具有各自的资源调度管理机制
为了避免不同类型应用之间互相干扰,企业就需要把内部的服务器拆分成多个集群,分别安装运行不同的计算框架,即“一个框架一个集群”

导致问题
集群资源利用率低
数据无法共享
维护代价高

④HBase是针对谷歌BigTable的开源实现,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来储存非结构化和半结构化松散数据。HBase可以支持超大规模数据储存,它可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。
⑤Hive
⑥Flume
⑦Sqoop

1.4.2spark
Spark最初由美国加州大学伯克利分校(UC Berkeley)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。2013年Spark加入Apache孵化器项目后发展迅猛,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)。Spark在2014年打破了Hadoop保持的基准排序纪录。Spark/206个节点/23分钟/100TB数据Hadoop/2000个节点/72分钟/100TB数据。Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度。

Spark具有如下几个主要特点:
①运行速度快:使用DAG执行引擎以支持循环数据流与内存计算
②容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
③通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件
④运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源。

Hadoop与Spark的对比:
Hadoop存在如下一些缺点:
①表达能力有限
②磁盘IO开销大
③延迟高
④任务之间的衔接涉及IO开销
⑤在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务

Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题,相比于Hadoop MapReduce,Spark主要具有如下优点:
①Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活
②Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高
③Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制

1.4.3Flink
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
在这里插入图片描述
在这里插入图片描述
1.4.4Beam
Apache Beam是大数据的编程模型,定义了数据处理的编程范式和接口,它并不涉及具体的执行引擎的实现,但是,基于Beam开发的数据处理程序可以执行在任意的分布式计算引擎上,目前Dataflow、Spark、Flink、Apex提供了对批处理和流处理的支持,GearPump提供了流处理的支持,Storm的支持也在开发中。
综上所述,Apache Beam的目标是:提供统一批处理和流处理的编程范式
能运行在任何可执行的引擎之上,为无限、乱序、互联网级别的数据集处理提供简单灵活、功能丰富以及表达能力十分强大的SDK。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值