大数据技术概述
一,大数据时代
- 三次信息化浪潮: IT领域每个十五年就会发生一次重大变革。
- 信息科技为大数据时代提供技术支持:
- 存储设备容量不断增加
- CPU处理能力大幅度提升
- 网络带宽不断增加
二,大数据概念
- 大数据不仅仅是数据的“大量化”,而是包含“快速化”,“多样化”,和“价值化”等多种属性。
- 数据量大:数据每年都在以50%的速度增长,也就是说每两年就增长一倍。人类在最近两年产生的数据量相当于之前产生的全部数据量。
- 数据类型繁多:大数据是由结构化数据和非结构化数据组成的。
- 处理速度快:从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少。
- 价值密度低:价值密度低,商业价值高。
三,大数据的影响
- 在思维方式上,大数据完全颠覆了传统的思维方式:①全面而非抽样 ②效率而非精确 ③相关而非因果
- 大数据的关键技术:数据采集,数据存储和管理,数据处理与分析,数据隐私和安全。
- 大数据的两大核心技术:分布式存储以及分布式处理(MapReduce).
四,大数据计算模式
- 大数据计算模式:批处理计算,流计算,图计算,查询分析计算。
五,代表性大数据技术
- 代表性技术:Hadoop,Spark,Flink,Beam。
- Hadoop—MapReduce: MapReduce是将复杂的,运行于大规模集群上的并行计算过程高度抽象到了两个函数:Map和Reduce。MapReduce 采用“分而治之”的策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。
- Hadoop—YARN:YARN的目标就是实现“一个集群多个框架”。因为当一个企业同时存在各种不同的业务应用场景时,就需要采用不同的计算框架,例如MapReduce实现离线批处理,Spark实现迭代计算…,然而这些产品大多数是来自不同的开发团队,具有各自的资源调度管理机制,为了不相互干扰,企业就需要分别安装不同的计算框架,既“一个框架一个集群”,这就导致了集群资源的利用率非常的低,数据无法共享,维护代价高。这时候在一个集群上部署一个统一的资源调度管理框架------YARN。由YARN为这些计算框架提供统一的资源调度管理服务,实现集群资源共享和资源的弹性收缩,就能有效的提高集群的利用率。不同的计算框架可以共享底层存储,就避免了数据集跨集群移动。
- Spark简介:是基于内存计算的大数据并行计算框架,可用于构建大型的,低延迟的数据分析应用程序,如今成为了Apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop,Soark,Storm)。特点:①运行速度快(使用DAG执行引擎 以支持循环数据流与内存计算),②容易使用(支持JAVA,SCALA,Python和R语言进行编程),③通用性(提供了完整而强大的技术栈),④运行模式多样(可运行独立的集群模式,还可运行于Hadoop中)。
Spark架构图:
Spark生态:
Hadoop与Spark的对比:
hadoop的缺点:①表达能力有限,②磁盘的IO开销大,③延迟高(在前一个任务执行完成前,其他的任务无法开始,难以胜任复杂,多阶段的计算任务)。
相比于Hadoop MapReduce,Spark的优点:①Sparkde 的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活 。②Spark提供了内存计算,对于迭代运算效率更高,③Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制。 - Fline:开源流处理框架,核心是JAVA和Scala编写的分布式流数据流引擎,本身也支持迭代算法的执行。
Fline 与 Spark的比较图:
- Beam:大数据的编程模型。基于Beam开发的数据处理程序可以执行在任意的分布式计算引擎上。
Apache Beam的目标是:①提供统一批处理和流处理的编程范式,②能运行在任何可执行的引擎上,③为无限,乱序,互联网级别的数据集处理提供简单灵活,功能丰富以及表达能力十分强大的SDK。