一、大数据时代
1.根据IBM前首席执行官郭士纳的观点,IT领域每隔十五年就会迎来一次重大变革
2.信息科技为大数据时代提供技术支撑:
- 存储设备容量不断增加
- CPU处理能力大幅提升
- 网络带宽不断增加
二、大数据概念
1.大数据概念
大数据不仅仅是数据的“大量化”,而是包含“快速化”、“多样化”和“价值化”等多重属性。
1.数据量大
- 根据IDC作出的估测,数据一直都在以每年50%的速度增长,也就是说每两年就增长一倍(大数据摩尔定律)
人类在最近两年产生的数据量相当于之前产生的全部数据量
预计到2020年,全球将总共拥有35ZB的数据量,相较于2010年,数据量将增长近30倍
2.数据类型繁多
大数据是由结构化和非结构化数据组成的
10%的结构化数据,存储在数据库中
90%的非结构化数据,它们与人类信息密切相关
3.处理速度快
从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少
1秒定律:这一点也是和传统的数据挖掘技术有着本质的不同
4.价值密度低
价值密度低,商业价值高
以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒,但是具有很高的商业价值
2.大数据影响
在思维方式方面,大数据完全颠覆了传统的思维方式:
全样而非抽样
效率而非精确
相关而非因果
3.大数据关键技术
4.大数据计算模式
三、Spark简介
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倍的速度
1.Spark主要特点:
-
运行速度快:使用DAG执行引擎以支持循环数据流与内存计算
-
容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
-
通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件
-
运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源
2.Spark如今已吸引了国内外各大公司的注意,如腾讯、淘宝、百度、亚马逊等公司均不同程度地使用了Spark来构建大数据分析应用,并应用到实际的生产环境中
2.Spark架构图
3.Spark生态
Hadoop与Spark的对比
Hadoop存在如下一些缺点:
-
表达能力有限
-
磁盘IO开销大
-
延迟高
-
任务之间的衔接涉及IO开销
-
在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务
Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题
相比于Hadoop MapReduce,Spark主要具有如下优点:
-
Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活
Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高 -
Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制