Hadoop 与 Spark 对比
Hadoop进行海量数据分析,MR频繁落地,IO操作,计算时间就拉长。由于这种设计影响,计算过程中不能进行迭代计算。造成网络节点数据传输。
Spark从理念上就开始改变。应用scala特点解决上面的核心问题,提升处理速度。Spark基于内存来实现,内存访问效率比磁盘访问效率高非常多。Spark不能完全基于内存,(所有要加工的数据都放入内存),部分数据也需要落地。一部分数据放在内存中,进行计算,计算中间结果有些不落地,直接放在内存,以val静态常量实现,新的RDD方式来存在。可以实现迭代式计算。
Spark比Hadoop性能,如果基于内存高100倍,如果基于磁盘高10倍。
Spark成也内存,败也内存
Spark基于内存,所以性能自然提高,和Hadoop相比,提高100倍。Spark磁盘方式,比Hadoop快10倍。
Spark对内存要求过多,需要大量内存,内存相比磁盘贵,企业采购压力。硬件要比hadoop贵很多。
Spark基于内存,很容易内存溢出。要么增加硬件来解决。增加cache/persist,增加检查点。把内存中的内容部分放入到磁盘中。性能稍打折扣。
Spark设计非常优秀,基于内存,随着硬件、内存越来越快,越来越廉价。最终Spark会超越Hadoop。Hadoop3.0引入把部分中间结果数据不落地,直接放在内存中。Hive新版提升29倍。
在实际中使用情况:
Hadoop使用比较多,和Yarn整合比较多。
Spark很多公司已经开始采用,逐步替代掉Hadoop作业,MR/hive被替代掉
在企业中Yarn集群中既有老的Hadoop作业,也有新的Spark作业。
Hadoop海量数据的离线分析
Spark海量数据的实时分析
Hadoop的问题
1) MR过程,Map过程做完要把中间结果数据落地,Reduce要继续加工数据,把中间结果数据读出,继续计算。这个过程中频繁IO操作。导致Hadoop处理速度严重受影响。
2) 分布式环境,网络传输,导致Hadoop处理速度严重受影响。
3) MR过程非迭代运行,导致Hadoop处理速度严重受影响。
这个3条能否改善?
1) Hadoop设计非常谨慎,因为当时历史条件(在486稳定运行+网络拨号512k)随着社会发展,硬件日新月异(电脑+网络)Spark设计基于内存。中间过程不落地,后续需要继续使用中间结果,直接拿。性能提升100倍
2) 网络自身硬件速度得到飞速提升,spark直接依赖这样稳定网络环境
3) 整个处理过程是迭代运行。利用内存中中间结果,使用高级函数方式(函数式编程)实现了内存中迭代计算。
Spark比Hadoop快的原因:
1) 基于内存,中间结果不落地,val
2) 迭代式运行
Hadoop生态圈(MR、hive、HDFS、hbase、yarn)
Spark生态圈(SparkSQL、HDFS、Tachyon内存列、yarn/mesos)
超越:SparkSQL替代掉MR和hive
依赖:HDFS和yarn
Spark是Hadoop升级,互相补充。部分替代。Hadoop主要应用于离线处理,Spark相对实时处理(秒级别),Storm真正实时(亚秒级别)
Hadoop 与 Spark 对比的更多相关文章
- hadoop之Spark强有力竞争者Flink,Spark与Flink:对比与分析
hadoop之Spark强有力竞争者Flink,Spark与Flink:对比与分析 Spark是一种快速.通用的计算集群系统,Spark提出的最主要抽象概念是弹性分布式数据集(RDD),它是一个元素集 ...
- PageRank在Hadoop和spark下的实现以及对比
关于PageRank的地位,不必多说. 主要思想:对于每个网页,用户都有可能点击网页上的某个链接,例如 A:B,C,D B:A,D C:AD:B,C 由这个我们可以得到网页的转移矩阵 A ...
- Hadoop vs Spark性能对比
http://www.cnblogs.com/jerrylead/archive/2012/08/13/2636149.html Hadoop vs Spark性能对比 基于Spark-0.4和Had ...
- 深度:Hadoop对Spark五大维度正面比拼报告!
每年,市场上都会出现种种不同的数据管理规模.类型与速度表现的分布式系统.在这些系统中,Spark和hadoop是获得最大关注的两个.然而该怎么判断哪一款适合你? 如果想批处理流量数据,并将其导入HDF ...
- 剖析Hadoop和Spark的Shuffle过程差异
一.前言 对于基于MapReduce编程范式的分布式计算来说,本质上而言,就是在计算数据的交.并.差.聚合.排序等过程.而分布式计算分而治之的思想,让每个节点只计算部分数据,也就是只处理一个分片,那么 ...
- 剖析Hadoop和Spark的Shuffle过程差异(一)
一.前言 对于基于MapReduce编程范式的分布式计算来说,本质上而言,就是在计算数据的交.并.差.聚合.排序等过程.而分布式计算分而治之的思想,让每个节点只计算部分数据,也就是只处理一个分片,那么 ...
- 大数据hadoop与spark的区别
学习hadoop已经有很长一段时间了,好像是二三月份的时候朋友给了一个国产Hadoop发行版下载地址,因为还是在学习阶段就下载了一个三节点的学习版玩一下.在研究.学习hadoop的朋友可以去找一下看看 ...
- [转帖]大数据hadoop与spark的区别
大数据hadoop与spark的区别 https://www.cnblogs.com/adnb34g/p/9233906.html Posted on 2018-06-27 14:43 左手中倒影 阅 ...
- 深度:Hadoop对Spark五大维度正面比拼!
每年,市场上都会出现种种不同的数据管理规模.类型与速度表现的分布式系统.在这些系统中,Spark和hadoop是获得最大关注的两个.然而该怎么判断哪一款适合你? 如果想批处理流量数据,并将其导入HDF ...
随机推荐
- Linux --赋予普通用户root 权限
Linux的普通用户在安装一些东西的时候或者执行命令的时候,终端始终会提示权限不够,我们会将这个普通用户赋予root权限,但是,和root还是有区别的,因为只能执行root规定好的一些操作命令. 1. ...
- 安装 Confluence6.7.1 笔记
安装 Confluence6.7.1 我是使用命令行进入mysql的mysql -uroot -p123456 创建数据库 CREATE DATABASE confluence DEFAULT CHA ...
- SpringCloud+Eureka+Feign+Ribbon+zuul的简化搭建流程和CRUD练习
环境:win10--idea2019--jdk8 1.搭建Eureka服务模块 1.1 新建eureka服务模块(Sping Initializr) 取名为eureka-server,并添加如下Dep ...
- 程序‘vim’已包含在下列软件包中
解决方法: 输入:sudo apt-get install ctags 输入:sudo apt-get install vim 输入:sudo ./config.sh (亲测有效)输入:vim tes ...
- Thinkphp 3.2 去掉index.php
1.httpd.conf中去掉LoadModule rewrite_module modules/mod_rewrite.so 前面的#号 2.httpd.conf 中 AllowOverride ...
- LUOGU P1501 [国家集训队]Tree II (lct)
传送门 解题思路 \(lct\),比较模板的一道题,路径加和乘的维护标记与线段树\(2\)差不多,然后剩下就没啥了.但调了我将近一下午.. 代码 #include<iostream> #i ...
- 转:这里有些sscanf()的一些使用说明,都是从论坛,Blog里整理出来的。供大家使用。
http://www.cnblogs.com/gmh915/archive/2009/09/30/1576995.html 这里有些sscanf()的一些使用说明,都是从论坛,Blog里整理出来的.供 ...
- super 关键字的使用及说明
super 关键字主要用于访问父类的变量和方法. 代码示例: public class Student { String name; public Student(){ System.out.prin ...
- liunx crontab 参数代表含义
* * * * * (下面的字体对应) 分钟 小时 几号 月份 星期几 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作. 逗号(,): ...
- Spring REST(4)
REST风格 /user/1 get请求 获取用户 /user/1 post请求 新增用户 /user/1 put请求 更新用户 /user/1 delete请求 删除用户 在Sp ...