前言:
此刻你们对“比较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