park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训

上传人:gua****an 文档编号:49769799 上传时间:2018-08-02 格式:DOCX 页数:3 大小:44.18KB
返回 下载 相关 举报
park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训_第1页
第1页 / 共3页
park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训_第2页
第2页 / 共3页
park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训》由会员分享,可在线阅读,更多相关《park的误解-不仅spark是内存计算,hadoop也是内存计算_光环大数据培训(3页珍藏版)》请在金锄头文库上搜索。

1、 光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/ 光环大数据光环大数据 http:/parkpark 的误解的误解- -不仅不仅 sparkspark 是内存计算,是内存计算,hadoophadoop 也是内存计算也是内存计算_ _光环大数据培训光环大数据培训市面上有一些初学者的误解,他们拿 spark 和 hadoop 比较时就会说,Spark 是内存计算,内存计算是 spark 的特性。请问在计算机领域,mysql,redis,ssh 框架等等他们不是内存计算吗?依据冯诺依曼体系结构,有什么技术的程序不是 在内存中运行,需要数据从硬盘中拉取,然后供 cpu 进行执行

2、?所有说 sprk 的 特点是内存计算相当于什么都没有说。那么 spark 的真正特点是什么?抛开 spark 的执行模型的方式,它的特点无非就是多个任务之间数据通信不需要借 助硬盘而是通过内存,大大提高了程序的执行效率。而 hadoop 由于本身的模型 特点,多个任务之间数据通信是必须借助硬盘落地的。那么 spark 的特点就是 数据交互不会走硬盘。只能说多个任务的数据交互不走硬盘,但是 sprk 的 shuffle 过程和 hadoop 一样仍然必须走硬盘的。误解一:Spark 是一种内存技术大家对 Spark 最大的误解就是 spark 一种内存技术。其实没有一个 Spark 开发者正式

3、说明这个,这是对 Spark 计算过程的误解。Spark 是内存计算没有 错误,但是这并不是它的特性,只是很多专家在介绍 spark 的特性时,简化后 就成了 spark 是内存计算。什么样是内存技术?就是允许你将数据持久化在 RAM 中并有效处理的技术。 然而 Spark 并不具备将数据数据存储在 RAM 的选项,虽然我们都知道可以将数 据存储在 HDFS, HBase 等系统中,但是不管是将数据存储在磁盘还是内存,都 没有内置的持久化代码。它所能做的事就是缓存数据,而这个并不是数据持久 化。已经缓存的数据可以很容易地被删除,并且在后期需要时重新计算。但是有人还是会认为 Spark 就是一种

4、基于内存的技术,因为 Spark 是在内 存中处理数据的。这当然是对的,因为我们无法使用其他方式来处理数据。操 作系统中的 API 都只能让你把数据从块设备加载到内存,然后计算完的结果再 存储到块设备中。我们无法直接在 HDD 设备上计算;所以现代系统中的所有处理 基本上都是在内存中进行的。虽然 Spark 允许我们使用内存缓存以及 LRU 替换规则,但是你想想现在的 RDBMS 系统,比如 Oracle ,你认为它们是如何处理数据的?它们使用共享内存 段作为 table pages 的存储池,所有的数据读取以及写入都是通过这个池的, 这个存储池同样支持 LRU 替换规则;所有现代的数据库同样

5、可以通过 LRU 策略来 满足大多数需求。但是为什么我们并没有把 Oracle 称作是基于内存的解决方 案呢?再想想操作系统 IO,你知道吗?所有的 IO 操作也是会用到 LRU 缓存技术 的。光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/ 光环大数据光环大数据 http:/Spark 在内存中处理所有的操作吗?Spark 的核心:shuffle,其就是将数据 写入到磁盘的。shuffle 的处理包括两个阶段:map 和 reduce。Map 操作仅仅 根据 key 计算其哈希值,并将数据存放到本地文件系统的不同文件中,文件的 个数通常是 reduce 端分区的个数;R

6、educe 端会从 Map 端拉取数据,并将这些数 据合并到新的分区中。所有如果你的 RDD 有 M 个分区,然后你将其转换成 N 个 分区的 PairRDD,那么在 shuffle 阶段将会创建 M*N 个文件!虽然目前有些优 化策略可以减少创建文件的个数,但这仍然无法改变每次进行 shuffle 操作的 时候你需要将数据先写入到磁盘的事实!所以结论是:Spark 并不是基于内存的技术!它其实是一种可以有效地使用 内存 LRU 策略的技术。误解二:Spark 要比 Hadoop 快 10x-100x大家在 Spark 的官网肯定看到了如下所示的图片这个图片是分别使用 Spark 和 Hado

7、op 运行逻辑回归(Logistic Regression)机器学习算法的运行时间比较,从上图可以看出 Spark 的运行速度 明显比 Hadoop 快上百倍!但是实际上是这样的吗?大多数机器学习算法的核心部 分是什么?其实就是对同一份数据集进行相同的迭代计算,而这个地方正是 Spark 的 LRU 算法所骄傲的地方。当你多次扫描相同的数据集时,你只需要在 首次访问时加载它到内存,后面的访问直接从内存中获取即可。这个功能非常 的棒!但是很遗憾的是,官方在使用 Hadoop 运行逻辑回归的时候很大可能没有 使用到 HDFS 的缓存功能,而是采用极端的情况。如果在 Hadoop 中运行逻辑回 归的

8、时候采用到 HDFS 缓存功能,其表现很可能只会比 Spark 差 3x-4x,而不是 上图所展示的一样。根据经验,企业所做出的基准测试报告一般都是不可信的!一般独立的第三 方基准测试报告是比较可信的,比如:TPC-H。他们的基准测试报告一般会覆盖 绝大部分场景,以便真实地展示结果。一般来说,Spark 比 MapReduce 运行速度快的原因主要有以下几点:task 启动时间比较快,Spark 是 fork 出线程;而 MR 是启动一个新的进程;更快的 shuffles,Spark 只有在 shuffle 的时候才会将数据放在磁盘,而 MR 却不是。更快的工作流:典型的 MR 工作流是由很多

9、 MR 作业组成的,他们之间的数 据交互需要把数据持久化到磁盘才可以;而 Spark 支持 DAG 以及 pipelining, 在没有遇到 shuffle 完全可以不把数据缓存到磁盘。光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/ 光环大数据光环大数据 http:/缓存:虽然目前 HDFS 也支持缓存,但是一般来说,Spark 的缓存功能更加 高效,特别是在 SparkSQL 中,我们可以将数据以列式的形式储存在内存中。所有的这些原因才使得 Spark 相比 Hadoop 拥有更好的性能表现;在比较短 的作业确实能快上 100 倍,但是在真实的生产环境下,一般只会快 2.5x 3x!为什么大家选择为什么大家选择光环大数据光环大数据!大数据培训、人工智能培训、Python 培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。【报名方式、详情咨询报名方式、详情咨询】光环大数据官方网站报名:光环大数据官方网站报名:http:/ /mobile/mobile/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 数据挖掘与识别

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号