龙空技术网

Spark简史,Spark VS Hadoop有什么区别?

加米谷大数据 88

前言:

此刻你们对“比较hadoop和spark”大致比较关注,你们都想要分析一些“比较hadoop和spark”的相关知识。那么小编也在网摘上搜集了一些对于“比较hadoop和spark””的相关知识,希望你们能喜欢,大家一起来学习一下吧!

Spark是一种通用的大数据计算框架,相对于Hadoop的MapReduce会在运行完工作后将中介数据存放到磁盘中,Spark 使用了内存内运算技术,能在数据尚未写入硬盘时即在内存内分析运算。

Spark发展简史

1、2009年,Spark诞生于伯克利大学AMPLab,属于伯克利大学的研究性项目;

2、2010 年,通过BSD 许可协议正式对外开源发布;

3、2012年,Spark第一篇论文发布,第一个正式版(Spark 0.6.0)发布;

4、2013年,成为了Aparch基金项目;发布Spark Streaming、Spark Mllib(机器学习)、Shark(Spark on Hadoop);

5、2014 年,Spark 成为 Apache 的顶级项目; 5 月底 Spark1.0.0 发布;发布 Spark Graphx(图计算)、Spark SQL代替Shark;

5、2015年,推出DataFrame(大数据分析);2015年至今,Spark在国内IT行业变得愈发火爆,大量的公司开始重点部署或者使用Spark来替代MapReduce、Hive、Storm等传统的大数据计算框架;

6、2016年,推出dataset(更强的数据分析手段);

7、2017年,structured streaming 发布;

8、2018年,Spark2.4.0发布,成为全球最大的开源项目。

Spark 基本组件:

Spark Core;Spark 核心 API,提供 DAG 分布式内存计算框架

Spark SQL:提供交互式查询 API

Spark Streaming:实时流处理

SparkML:机器学习 API

SparkGraphx:图形计算

Spark VS Hadoop

1、 Spark VS MapReduce

(1)MapReduce框架局限性

1)仅支持Map和Reduce两种操作

2)处理效率低效

Map中间结果写磁盘,Reduce写HDFS,多个MR之间通过HDFS交换数据; 任务调度和启动开销大;无法充分利用内存;Map端和Reduce端均需要排序;

3)不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析),MapReduce编程不够灵活

(2)Spark相比的优势

高效(比MapReduce快):

1)内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销

2)DAG引擎,减少多次计算之间中间结果写到HDFS的开销

3)使用多线程池模型来减少task启动开稍,shuffle过程中避免 不必要的sort操作以及减少磁盘IO操作

易用:

1)提供了丰富的API,支持Java,Scala,Python和R四种语言

2)代码量比MapReduce少

3)与Hadoop集成 读写HDFS/Hbase 与YARN集成

2、Spark SQL VS Hive

Hive是一种基于HDFS的数据仓库,并且提供了基于SQL模型的,针对存储了大数据的数据仓库,进行分布式交互查询的查询引擎。

Spark SQL并不能完全替代Hive,它替代的是Hive的查询引擎,Spark SQL由于其底层基于Spark自身的基于内存的特点,因此速度是Hive查询引擎的数倍以上,Spark本身是不提供存储的,所以不可能替代Hive作为数据仓库的这个功能。

Spark SQL相较于Hive的另外一个优点,是支持大量不同的数据源,包括hive、json、parquet、jdbc等等。Spark SQL由于身处Spark技术堆栈内,基于RDD来工作,因此可以与Spark的其他组件无缝整合使用,配合起来实现许多复杂的功能。比如Spark SQL支持可以直接针对hdfs文件执行sql语句。加米谷大数据,个人培训、企业内训。

Spark主要用于大数据的计算,而Hadoop以后主要用于大数据的存储(比如HDFS、Hive、HBase等),以及资源调度(Yarn)。Spark+Hadoop,是目前大数据领域最热门的组合。

原文:

标签: #比较hadoop和spark