**
1. Spark简介:
大数据(big data)指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
对于一开始学习的hadoop,spark相较而言在近几年中流行起来,甚至有追赶上hadoop的趋势。
Spark最初由美国加州伯克利大学(UCBerkeley)的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等多种数据源。
Spark是什么?
Spark是一个基于内存的分布式批处理引擎。 由AMP LAB贡献到Apache社区的开源项目,是AMP大数据栈的基础组件。
Spark是一站式解决方案,集批处理、实时流计算、交互式查询、图计算与机器学习与一体。
Spark做什么?
1.数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。
2.迭代计算(Iterrative Computation):支持迭代计算,有效应对多步数据处理逻辑。
3.数据挖掘(Data Mining):在还海量数据的基础上进程复杂的挖掘分析,可支持各种数据挖掘和机器学习算法。
Spark适用场景:
1.数据处理,ETL(抽取、转换、加载)
2.机器学习。如:可用于自动判断淘宝买家的评论是好评还是差评。
3.交互式分析:可用于查询Hive数据仓库。
4.特别使用与迭代计算,数据重复利用场景。
5.流计算:流处理可用于页面点击浏览分析,推荐系统,舆情分析等实时业务。
Spark与Hadoop的对比:
对比Hadoop:
性能上提升高于100倍
Spark的中间数据存放在内存中,对于迭代运算的效率更高,进行批处理时更高效。
更低的延时。
Spark提供更多的数据操作类型,编程模型比Hadoop更灵活,开发效率更高。
更高的容错能力(血统机制)。
Hadoop存在如下一些缺点:
表达能力有限
磁盘IO开销大
延迟高
任务之间的衔接涉及IO开销
在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务
存储
主要包括hdfs、Kafka
计算
主要包括MapReduce、Spark、Flink
查询
主要为Nosql和Olap,Nosql
主要包括Hbase、 Cassandra 等:
其中olap包括kyline、impla
其中Nosql主要解决随即查询
Olap技术主要解决关联查询