要想搞清楚spark跟Hadoop到底谁更厉害,首先得明白spark到底是什么鬼。

经过之前的介绍大家应该非常了解什么是Hadoop了(不了解的点击这里:白话大数据 | hadoop究竟是什么鬼),简单的说:Hadoop是由HDFS分布式文件系统和MapReduce编程模型等部分组成的分布式系统架构。

而Spark呢,更像是Hadoop MapReduce这样的编程模型。

其实要讲清楚Spark,内存和磁盘这两个概念是必须要弄清楚的,相信在座的老爷太太们都懂,我还是简单说一下吧。内存和磁盘两者都是存储设备, 但内存储存的是我们正在使用的资源,磁盘储存的是我们暂时用不到的资源。磁盘就像这个仓库,而内存就像进出仓库的通道,其实也不完全是这样啦,小编主要想跟大家说的就是仓库很大,要塞满它很难,反观通道很小就很容易塞满。

Spark和MapReduce的相同之处是都不带有磁盘文件系统,都可以依附HDFS作为分布式(磁盘)文件系统

所以说Spark与Hadoop并无冲突,甚至可以与Hdoop融为一体)。

不同之处挺多的,但主要是Spark有一个分布式内存文件系统,可以对内存中的文件进行分布处理。那么小编先举一个例子让大家看看Spark和MapReduce在处理问题方式上有什么区别。

Mapreduce每一个步骤发生在内存中但产生的中间值都会储存在磁盘里,下一步操作时又会将这个中间值调用到内存中,如此循环,直到最终完成。

Spark的每个步骤也是发生在内存之中但产生的中间值会直接进入下一个步骤,直到所有的步骤完成之后才会将最终结果保存进磁盘。所以在使用Spark做数据分析能少进行很多次相对没有意义的读写,节省大量的时间,少数步骤可能感觉不出区别,但是步骤很多时,Spark的优势就体现出来了。
大家可以看出来了,MapReduce就是一个稳重的妈妈,一步一步来,有条不紊。Spark就像一个急躁的妈妈,一个步骤还没完成呢,就开始进行下一个步骤了,当然,这也要求操作台足够大,放得下这么多东西。

当然,任何技术都是有得必有失的,虽然Spark很快,但Spark运作时会占用大量计算机内存,而小编之前说过,内存空间相比于磁盘空间,那是很小很小的,这就要求使用者去购买具有较大内存的服务器布置集群,而这样的服务器是很昂贵的。由于内存的限制,即使是用昂贵的服务器,Spark也不能太好地处理很大批量的文件,而这些问题都是MapReduce不用考虑的。小编记得有大神举过很棒的例子,MapReduce就像一把大砍刀,什么都能砍,尽管速度有点不尽人意;Spark就像一把剔骨刀,很锋利速度很快,但具有局限性,不能砍太大的东西。

白话大数据 | Spark和Hadoop到底谁更厉害?的更多相关文章

  1. 大数据 --> Spark与Hadoop对比

    Spark与Hadoop对比 什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法 ...

  2. 大数据 --> Spark和Hadoop作业之间的区别

    Spark和Hadoop作业之间的区别 熟悉Hadoop的人应该都知道,用户先编写好一个程序,我们称为Mapreduce程序,一个Mapreduce程序就是一个Job,而一个Job里面可以有一个或多个 ...

  3. 王家林 大数据Spark超经典视频链接全集[转]

    压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan ...

  4. 《大数据Spark企业级实战 》

    基本信息 作者: Spark亚太研究院   王家林 丛书名:决胜大数据时代Spark全系列书籍 出版社:电子工业出版社 ISBN:9787121247446 上架时间:2015-1-6 出版日期:20 ...

  5. 【大数据】了解Hadoop框架的基础知识

    介绍 此Refcard提供了Apache Hadoop,这是最流行的软件框架,可使用简单的高级编程模型实现大型数据集的分布式存储和处理.我们将介绍Hadoop最重要的概念,描述其架构,指导您如何开始使 ...

  6. 一篇了解大数据架构及Hadoop生态圈

    一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...

  7. 大数据Spark超经典视频链接全集

    论坛贴吧等信息发布参考模板 Scala.Spark史上最全面.最详细.最彻底的一整套视频全集(特别是机器学习.Spark Core解密.Spark性能优化.Spark面试宝典.Spark项目案例等). ...

  8. 【Todo】【读书笔记】大数据Spark企业级实战版 & Scala学习

    下了这本<大数据Spark企业级实战版>, 另外还有一本<Spark大数据处理:技术.应用与性能优化(全)> 先看前一篇. 根据书里的前言里面,对于阅读顺序的建议.先看最后的S ...

  9. 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

    大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四): ...

随机推荐

  1. es定期删除数据

    es定期删除数据 1.定期删除索引 使用sentinl报警后,会产生大量如下索引,虽然不占空间,但时间久了也不好,故写个脚本定期删除 脚本如下: 1 #!/bin/bash 2 #只保留5天内的日志索 ...

  2. R语言入门(2)-数据对象

    数据对象 创建向量相关的方法 R语言的向量用法非常像python, 就比如这个seq(0,10,2), 从0到10, 步长为2, 涉及到的元素作为向量里的内容进行创建. 这里的用法非常像Matlab, ...

  3. Thinkphp生成的验证码不显示——解决方法

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){ $verify = new \Think\Verify(); $verify-& ...

  4. Java(16)接口

    一.接口:特殊的抽象类 1.1 语法 public interface 接口名 extends 接口1,接口2{ //1.常量 //2.抽象方法 } 1.2 特点 a.用interface修饰 b.接 ...

  5. 关于HashSet集合add元素

    HashSet集合add元素底层实现使用的是HashMap. 简单记忆:无论HashMap put元素还是HashSet add元素,都先调用hashCode()方法,若hashCode方法返回值不同 ...

  6. Tortoisegit图文使用教程

    本文只针对使用Tortoisegit的用户,使用命令行的后面可以不用看了 1.安装Git及Tortoisegit 先上图,首先需要把123按顺序安装了 Git下载地址:https://git-for- ...

  7. 2018-2019-2 20165234 《网络对抗技术》 Exp1 PC平台逆向破解

    实验一 PC平台逆向破解 实验目的 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另 ...

  8. Day 18: 记filebeat内存泄漏问题分析及调优

    ELK 从发布5.0之后加入了beats套件之后,就改名叫做elastic stack了.beats是一组轻量级的软件,给我们提供了简便,快捷的方式来实时收集.丰富更多的数据用以支撑我们的分析.但由于 ...

  9. 【easy】653. Two Sum IV - Input is a BST

    BST树求得两个节点的和是target //因为是BST所以中序遍历得到的是递增数组 //这个题的方法就是在一个递增数组中找到两个数的和相加是目标结果 /** * Definition for a b ...

  10. 简单python接口测试编写和django开发环境的搭建

    安装django环境 启动django D:\python\imooc>python manage.py runserver 0.0.0.0:8000 命令行下django新建app D:\py ...