讲到Spark,我们要先讲将大数据,因为Spark是一个处理大数据的平台。那什么是大数据呢?大数据也称为海量数据,通常都是指TG级、PB级的数据,但是随着时间的流逝和验证,一些人们对大数据也发生了观念上的转变,而是把对企业有价值的数据称为大数据,它不一定大,但要有价值。
近二十年来,随着计算机技术和互联网技术的高速发展,计算机在记录着人类的日常活动,如手机通讯、网站访问、微博留言、视频上传、商品买卖、物流运送。。。,无处不在的社会活动和商业活动正在源源不断地产生着各种各样的数据,而这些数据正以不可思议的速度积累着,从GB级向着TB级、PB级发展。
面对如此海量的数据,一方面是这些信息如同巨大的宝藏等待人们去挖掘,如果能善以利用,这些数据将引导现在社会的科研和商业活动,进入一个黄金时代;另一方面,这些数据的迅猛发展,挑战着包括数据中心基础设施和数据分析基础架构在内的数据处理的各个环节。幸运的是,近几年云计算技术的发展和各种计算框架的出现,使得分析和掌握大数据中蕴藏的无尽信息、知识、智慧成为可能。
下面我们看看两个图:
这是一个google的热力图,使用专用设备跟踪参与调查的访问者的眼球在网页上的停留轨迹。这种图直接显示了用户的视觉体验——他们在页面的哪些区域停留的时间更长。
另一个是微博的传播图,可以看出微博的传播途径的规律。
很明显,通过这些数据的分析,得到其中的规律和潜在的信息,我们可以更好的将有限的资源利用到更有效果的地方。
那么如何去挖掘这些信息呢?让我们看看大数据分析平台一览图
面对琳琅满目、令人有些眼花缭乱的各种产品,该做何种选择?我们选择了Spark。为什么?
1:All-In-One的解决方案
谈到Spark,大多数的人首先想到的是内存计算框架,计算速度很快等概念。但对于系统架构师或IT信息部门主管来说,更吸引其眼光的应该是Spark的All-In-One的解决方案。我们来看看最新的Spark Stack:
除了核心的Spark Core Engine外,Spark提供了应用在不同场景上的处理工具:
- 应用于流式计算的Spark Streaming
- 应用于即席查询(Ad-hoc)的Spark SQL
- 应用于机器学习(数据挖掘)的MLlib
- 应用于图处理的GraphX
- 将R扩展成并行计算的SparkR
- 还有权衡精度和速度的查询引擎BlinkDB
这意外着采用Spark将减少人力和资金的投入,降低的系统的复杂性,减轻维护的工作量。
2:天下武功,唯快不破
运行速度快,开发速度快是Spark最耀眼的特点:
- Spark号称在磁盘上的运行速度是MapReduce的10倍以上,在内存上的运行速度是MapReduce的100以上;这不仅仅是Spark是基于内存计算,更因为是Spark采用了DAG算法减少了IO开销。
- Spark应用程序d的开发量比MapReduce少2-5倍
3:迅猛发展的趋势
- 2009年由Berkeley’s AMPLab开始编写最初的源代码
- 2010年开放源代码
- 2013年6月进入Apache孵化器项目
- 2014年成为Apache的顶级项目之一
- 目前已经有30+公司100+开发者在提交代码
- Hadoop最大的厂商Cloudera宣称加大Spark框架的投入来取代Mapreduce
- Spark1.0.0发布。。。