大数据特征:
1)大量化(Volume):存储量大,增量大 TB->PB
2)多样化(Variety):
来源多:搜索引擎,社交网络,通话记录,传感器
格式多:(非)结构化数据,文本、日志、视频、图片、地理位置等
3)快速化(VeLocity):海量数据的处理需求不再局限在离线计算当中
4)价值密度低(Value):但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来
大数据带来的革命性变革:
1)成本降低
2)软件容错,硬件故障视为常态
3)简化分布式并行计算
什么是Spark
一、Spark概述
1.、什么是Spark?Spark作为Apache顶级的开源项目,是一个快速、通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩、基于内存计算等特点,以及可以直接读写Hadoop上任何格式数据的优势,进行批处理时更加高效,并有更低的延迟。
2、 Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
3、Spark于2009年诞生于加州大学伯克利分校AMPLab。相对于MapReduce上的批量计算、迭代型计算以及基于Hive的SQL查询,Spark可以带来上百倍的性能提升。目前Spark的生态系统日趋完善,Spark sql的发布、Hive on Spark项目的启动以及大量大数据公司对Spark全栈的支持,让Spark的数据分析范式更加丰富。
二、Spark特点
先进架构
Spark采用Scala语言编写,底层采用了actor model的akka作为通讯框架,代码十分简洁高效。
基于DAG图的执行引擎,减少多次计算之间中间结果写到Hdfs的开销。
建立在统一抽象的RDD(分布式内存抽象)之上,使得它可以以基本一致的方式应对不同的大数据处理场景。
高效
提供Cache机制来支持需要反复迭代的计算或者多次数据共享,减少数据读取的IO开销。
与Hadoop的MapReduce相比,Spark基于内存的运算比MR要快100倍;而基于硬盘的运算也要快10倍!
易用
Spark提供广泛的数据集操作类型(20+种),不像Hadoop只提供了Map和Reduce两种操作。
Spark支持Java,Python和Scala API,支持交互式的Python和Scala的shell。
提供整体解决方案
以其RDD模型的强大表现能力,逐渐形成了一套自己的生态圈,提供了full-stack的解决方案。
主要包括Spark内存中批处理,Spark sql交互式查询,Spark Streaming流式计算, GraphX和MLlib提供的常用图计算和机器学习算法。
与Hadoop无缝连接
Spark可以使用YARN作为它的集群管理器
读取HDFS,HBase等一切Hadoop的数据
Spark整体架构
Spark提供了多种高级工具,如: Shark sql应用于即席查询(Ad-hoc query)、Spark Streaming应用于流式计算、 MLlib应用于机器学习、GraphX应用于图处理。Spark还可以基于自带的standalone集群管理器独立运行,也可以部署在Apache Mesos 和 Hadoop YARN 等集群管理器上运行。Spark可以访问存储在HDFS、 Hbase、Cassandra、Amazon S3、本地文件系统等等上的数据,Spark支持文本文件,序列文件,以及任何Hadoop的InputFormat。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。