iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ApacheSpark常见的三大误解分别是什么
  • 444
分享到

ApacheSpark常见的三大误解分别是什么

2023-06-04 08:06:57 444人浏览 独家记忆
摘要

Apachespark常见的三大误解分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ApacheSpark常见的三大误解误解一:Spark是一种内存技术  大家对S

Apachespark常见的三大误解分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

ApacheSpark常见的三大误解

误解一:Spark是一种内存技术

  大家对Spark最大的误解就是其是一种内存技术(in-memorytechnology)。其实不是这样的!没有一个Spark开发者正式说明这个,这是对Spark计算过程的误解。

  我们从头开始说明。什么样的技术才能称得上是内存技术?在我看来,就是允许你将数据持久化(persist)在RAM中并有效处理的技术。然而Spark并不具备将数据数据存储在RAM的选项,虽然我们都知道可以将数据存储在hdfs,Tachyon,HBase,Cassandra等系统中,但是不管是将数据存储在磁盘还是内存,都没有内置的持久化代码(nativepersistencecode)。它所能做的事就是缓存(cache)数据,而这个并不是数据持久化(persist)。已经缓存的数据可以很容易地被删除,并且在后期需要时重新计算。

  但是即使有这些信息,仍然有些人还是会认为Spark就是一种基于内存的技术,因为Spark是在内存中处理数据的。这当然是对的,因为我们无法使用其他方式来处理数据。操作系统中的api都只能让你把数据从块设备加载到内存,然后计算完的结果再存储到块设备中。我们无法直接在HDD设备上计算;所以现代系统中的所有处理基本上都是在内存中进行的。

  虽然Spark允许我们使用内存缓存以及LRU替换规则,但是你想想现在的RDBMS系统,比如oraclepostgresql,你认为它们是如何处理数据的?它们使用共享内存段(sharedmemorysegment)作为tablepages的存储池,所有的数据读取以及写入都是通过这个池的,这个存储池同样支持LRU替换规则;所有现代的数据库同样可以通过LRU策略来满足大多数需求。但是为什么我们并没有把Oracle和Postgresql称作是基于内存的解决方案呢?你再想想linuxio,你知道吗?所有的IO操作也是会用到LRU缓存技术的。

  你现在还认为Spark在内存中处理所有的操作吗?你可能要失望了。比如Spark的核心:shuffle,其就是将数据写入到磁盘的。如果你再SparkSQL中使用到groupby语句,或者你将RDD转换成PairRDD并且在其之上进行一些聚合操作,这时候你强制让Spark根据key的哈希值将数据分发到所有的分区中。shuffle的处理包括两个阶段:map和reduce。Map操作仅仅根据key计算其哈希值,并将数据存放到本地文件系统的不同文件中,文件的个数通常是reduce端分区的个数;Reduce端会从Map端拉取数据,并将这些数据合并到新的分区中。所有如果你的RDD有M个分区,然后你将其转换成N个分区的PairRDD,那么在shuffle阶段将会创建M*N个文件!虽然目前有些优化策略可以减少创建文件的个数,但这仍然无法改变每次进行shuffle操作的时候你需要将数据先写入到磁盘的事实!

所以结论是:Spark并不是基于内存的技术!它其实是一种可以有效地使用内存LRU策略的技术。

误解二:Spark要比hadoop快10x-100x

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

  根据经验,企业所做出的基准测试报告一般都是不可信的!一般独立的第三方基准测试报告是比较可信的,比如:TPC-H。他们的基准测试报告一般会覆盖绝大部分场景,以便真实地展示结果。

  一般来说,Spark比mapReduce运行速度快的原因主要有以下几点:

  task启动时间比较快,Spark是fork出线程;而MR是启动一个新的进程;

  更快的shuffles,Spark只有在shuffle的时候才会将数据放在磁盘,而MR却不是。

  更快的工作流:典型的MR工作流是由很多MR作业组成的,他们之间的数据交互需要把数据持久化到磁盘才可以;而Spark支持DAG以及pipelining,在没有遇到shuffle完全可以不把数据缓存到磁盘。

  缓存:虽然目前HDFS也支持缓存,但是一般来说,Spark的缓存功能更加高效,特别是在SparkSQL中,我们可以将数据以列式的形式储存在内存中。

  所有的这些原因才使得Spark相比Hadoop拥有更好的性能表现;在比较短的作业确实能快上100倍,但是在真实的生产环境下,一般只会快2.5x~3x!

误解三:Spark在数据处理方面引入了全新的技术

  事实上,Spark并没有引入任何革命性的新技术!其擅长的LRU缓存策略和数据的pipelining处理其实在MPP数据库中早就存在!Spark做出重要的一步是使用开源的方式来实现它!并且企业可以免费地使用它。大部分企业势必会选择开源的Spark技术,而不是付费的MPP技术

关于ApacheSpark常见的三大误解分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: ApacheSpark常见的三大误解分别是什么

本文链接: https://www.lsjlt.com/news/236928.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ApacheSpark常见的三大误解分别是什么
    ApacheSpark常见的三大误解分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ApacheSpark常见的三大误解误解一:Spark是一种内存技术  大家对S...
    99+
    2023-06-04
  • 服务器租用的三大常见误解是什么
    服务器租用的三大常见误解是:1、认为服务器租用价格太昂贵,优质的服务器,能为企业提供一流的可靠性,有利于企业业务的增长;2、认为租用服务器没有控制权,优质的服务器会提供完整的远程智能化电源控制权限;3、认为服务器不如云服务器可靠,服务器租用...
    99+
    2024-04-02
  • JavaScript中五大常见函数分别是什么
    这篇文章主要为大家展示了“JavaScript中五大常见函数分别是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中五大常见函数分别是什么...
    99+
    2024-04-02
  • 最常用的三大中文数据库分别是什么
    这篇文章主要介绍最常用的三大中文数据库分别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最常用的三大中文数据库是:“MySQL”、“SQL Server”、“Oracle”。“...
    99+
    2024-04-02
  • 三大常见Flex通信方式有什么区别
    小编给大家分享一下三大常见Flex通信方式有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!三种Flex通信方式Flex程序与服务器端程序进行数据交互,有三...
    99+
    2023-06-17
  • java三大体系分别是什么
    java三大体系分别是Java SE、Java EE和Java ME。详细介绍:1、Java SE是Java平台的基础,用于开发桌面应用程序、嵌入式系统和移动设备等;2、Java EE是用于开发企业级应用程序的平台;3、Java ME是为嵌...
    99+
    2023-08-09
  • hadoop中的三大组件分别是什么
    这篇文章主要介绍hadoop中的三大组件分别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!hadoop三大组件:1、HDFS,一个高可靠、高吞吐量的分布式文件系统;2、MapReduce,一个分布式的离线并行计...
    99+
    2023-06-14
  • 大数据分析的常见思路是什么
    大数据分析的常见思路是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据分析的常见思路,是具有指导意义的方法论,可以指导读者往哪些方向分析数据。但不限于数据分析,这些思路,...
    99+
    2023-06-19
  • 服务器租用的三大误解是什么
    服务器租用的三大误解是:1、认为租用的服务器要失去数据管理权,用户的可访问性和控制权取决于服务器供应商和所选择的服务类型;2、认为云服务器更加靠谱,租用服务器支持定制和完全访问,具备更高水平的质量支持;3、认为服务器租用不如自建机房划算,租...
    99+
    2024-04-02
  • JAVA语言的十个常见误解是什么
    这篇“JAVA语言的十个常见误解是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JAVA语言的十个常见误解是什么”文章吧...
    99+
    2023-06-03
  • Vim的三种常见模式是什么
    这篇文章主要介绍了Vim的三种常见模式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vim的三种常见模式是什么文章都会有所收获,下面我们一起来看看吧。安装VIM# yum instal...
    99+
    2023-06-28
  • Java中常见的几个陷阱分别是什么
    这篇文章给大家介绍Java中常见的几个陷阱分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java 中有很多,新手经常遇到的陷阱,下面主要包含自动装箱与拆箱不可变的String内存泄漏自增类型使用使用 “==”...
    99+
    2023-06-16
  • 实现Flex全屏的三大方法分别是什么
    实现Flex全屏的三大方法分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Flex全屏方法介绍最近在做工作流的流程设计工具相关的内容,web应用使用了比较标准的分布...
    99+
    2023-06-17
  • Golang中最常见的错误是什么
    这篇文章主要介绍“Golang中最常见的错误是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang中最常见的错误是什么”文章能帮助大家解决问题。一、类型错误类型错误是Golang中最常见的...
    99+
    2023-07-05
  • 购买或者代购Dreamhost主机过程中的三大误区分别是什么
    购买或者代购Dreamhost主机过程中的三大误区分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。误区一:代购Dreamhost主机的人靠退款或者拒付来赚钱现在网上...
    99+
    2023-06-12
  • Java2平台J2SE、J2EE、J2ME三大版本的区别分别是什么
    本篇文章为大家展示了Java2平台J2SE、J2EE、J2ME三大版本的区别分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。向大家简单介绍一下J2SE、J2...
    99+
    2024-04-02
  • thinkphp3.2中的常见错误和解决方法是什么
    本篇内容主要讲解“thinkphp3.2中的常见错误和解决方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp3.2中的常见错误和解决方法是什么”吧!1.404错误返回当我们...
    99+
    2023-07-05
  • php中面向对象的三大特性分别是什么
    这篇“php中面向对象的三大特性分别是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php中面向对象的三大特性分别是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接...
    99+
    2023-06-06
  • 开发中常见的Oracle三大故障与调优方法是什么
    本篇内容介绍了“开发中常见的Oracle三大故障与调优方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • 大数据分布式中常见问题的解决方案是什么
    大数据分布式中常见问题的解决方案是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1分布式中的常见问题解决方案下面是关于分布式系统中最常见的三种问题本部分内容包括:分布式...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作