干货丨“看过这篇文章的人都学会Spark了”

这篇具有很好参考价值的文章主要介绍了干货丨“看过这篇文章的人都学会Spark了”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是Spark

Spark是一个用于大规模数据处理的统一计算引擎。 Spark是一种快速、通用、可扩展的大数据分析引擎。

注意:Spark不仅仅可以做类似于MapReduce的离线数据计算,还可以做实时数据计算,并且它还可以实现类似于Hive的SQL计算,等等,所以说它是一个统一的计算引擎。

Spark官网:Apache Spark™ - Unified Engine for large-scale data analytics

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

二、Spark的特点

Spark的特点:快速、易用、通用、随处运行、代码简洁

Spark的最大特点:基于内存

1.快速:一般情况下,对于迭代次数较多的应用程序,Spark程序在内存中的运行速度是Hadoop MapReduce运行速度的100多倍,在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

2.易用性:Spark支持使用ScalaPythonJavaR语言快速编写应用。同时Spark提供超过80高阶算子,使得编写并行应用程序变得容易并且可以在ScalaPythonR的交互模式下使用Spark

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

3.通用性:Spark可以与SQLStreaming及复杂的分析良好结合。Spark还有一系列的高级工具,包括Spark SQLMLlib(机器学习库)、GraphX(图计算)和Spark Streaming(流计算),并且支持在一个应用中同时使用这些组件。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

4.随处运行:用户可以使用Spark的独立集群模式运行Spark,也可以在EC2(亚马逊弹性计算云)、Hadoop YARN或者Apache Mesos上运行Spark。并且可以从HDFSCassandraHBaseHiveTachyon和任何分布式文件系统读取数据。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

5. 代码简洁:

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

三、Spark和Hadoop MapReduce有什么区别?

Spark VS Hadoop MapReduce:

1、Spark的速度比MapReduce快,Spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,比较影响性能;

2、spark容错性高,它通过弹性分布式数据集RDD来实现高效容错;mapreduce容错可能只能重新计算了,成本较高;

3、spark更加通用,spark提供了transformation和action这两大类的多个功能API,另外还有流式处理sparkstreaming模块、图计算GraphX等;mapreduce只提供了map和reduce两种操作,流计算以及其他模块的支持比较缺乏,计算框架(API)比较局限;

4、spark框架和生态更为复杂,很多时候spark作业都需要根据不同业务场景的需要进行调优已达到性能要求;mapreduce框架及其生态相对较为简单,对性能的要求也相对较弱,但是运行较为稳定,适合长期后台运行;

5、Spark API方面- Scala: Scalable Language, 是进行并行计算的最好的语言. 与Java相比,极大的减少代码量(Hadoop框架的很多部分是用Java编写的)。

Spark 和 Hadoop MapReduce 的重点应用场合有所不同。

Spark会取代Hadoop吗? 

Spark与Hadoop MapReduce在业界有两种说法 :

一是 Spark 将代替 Hadoop MapReduce,成为未来大数据处理发展的方向 ;

二是 Spark 将会和 Hadoop 结合,形成更大的生态圈。

Hadoop和Spark两者都是大数据框架,Hadoop实质上更多是一个分布式数据基础设施:它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着不需要购买和维护昂贵的服务器硬件,还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。

Spark是借鉴了mapreduce并在其基础上发展起来的,继承了其分布式计算的优点并改进了mapreduce明显的缺陷,但是二者也有不少的差异。Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。Spark的限制:内存。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

四、结构化数据与非结构化数据

结构化数据:指关系模型数据,即以关系数据库表形式管理的数据,二维形式的数据,有规律性,有行有列。

非结构化数据:指数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。如word、pdf、ppt及各种格式的图片、视频等。

五、Spark集群的三种部署模式

1.Standalone 模式:standalone模式也叫作独立模式,自带完整的服务,可单独部署到一个集群中,无序依赖任何其他资源管理系统。

Standalone模式运行流程

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

2.YARN运行模式:Spark使用Hadoop的YARN组件进行资源与任务调度,真正意义上spark与外部对接协作。

yarn-cluster运行流程

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

yarn-client运行流程

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

3.Local模式:在本地部署单个Spark服务,比较适合简单了解spark目录结构,熟悉配置文件,简单跑一下demo示例等调试场景。

六、MapReduce的工作流程

MapReduce编程模型开发简单且功能强大,专门为并行处理大规模数据量而设计,接下来,我们通过一张图来描述MapReduce的工作过程,如下图所示。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

七、Spark核心数据集RDD

RDDResilient Distributed Datasets弹性分布式数据集),可以简单的把RDD理解成一个提供了许多操作接口的数据集合,和一般数据集不同的是,其实际数据分布存储于一批机器中(内存或磁盘中)。干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式转换算子和行动算子

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式Spark RDD转换和操作示例

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

宽依赖与窄依赖

窄依赖:表现为一个父RDD的分区对应于一个子RDD的分区或者多个父RDD的分区对应于一个子RDD的分区。

宽依赖:表现为存在一个父RDD的一个分区对应一个子RDD的多个分区。

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式

RDD Stage划分

干货丨“看过这篇文章的人都学会Spark了”,spark,大数据,分布式文章来源地址https://www.toymoban.com/news/detail-840263.html

到了这里,关于干货丨“看过这篇文章的人都学会Spark了”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive详解(一篇文章让你彻底学会Hive)

    概述 Hive是由Facebook(脸书)开发的后来贡献给了Apache的一套数据仓库管理工具,针对海量的结构化数据提供了读、写和管理的功能。 图-1 Hive图标 Hive本身是基于Hadoop,提供了类SQL(Hive Query Language,简称为HQL)语言来操作HDFS上的数据,而底层实际上是将用户书写的SQL转化为了MapR

    2024年04月12日
    浏览(37)
  • 一篇文章学会YooAsset资源热更新的初始化

    官方文档 在ProjectSetting里找到这个,这么填 package.openupm.cn https://package.openupm.cn com.tuyoogame.yooasset 然后在PackageManager里,选择MyRegistry ,导入YooAsset 本文只探讨到1.4.17,再高不支持了,本文全部代码均已验证正确 在使用这些东西之前,我们需要在Project面板右键,选择YooAsset/Cr

    2024年02月09日
    浏览(28)
  • 假期算法提升(一篇文章带你彻底学会双指针)

    呀哈喽,我是结衣。 对于要参加程序设计比赛的人来说,算法永远都是一道绕不开的坎,你必须的去了解他才可以更好的去解决问题。非形式地说,算法就是任何良地计算过程,我们可以把算法看作是用于求良说明地计算问题地工具。那么今天我们学到的就是其中最基础的一

    2024年02月19日
    浏览(31)
  • 轻松学会Java导出word,一篇文章就够了!

    很多小伙伴在工作中,可能又这样一个需求:根据word模板去填充数据,变成我们想要的word文档,这是很多刚进入职场的小白都会碰到的需求。 当遇上这种需求,我们可以通过这篇文章要讲的 poi-tl 来做处理。 我们先在指定的位置创建一个测试文档。我这边直接在springboot中的

    2024年02月07日
    浏览(35)
  • 一篇文章带你学会Hadoop-3.3.4集群部署

    目录 ​编辑 一、Hadoop集群部署 二、基础设施配置 2.1 设置网络  2.1.1 设置主机名称 2.1.2 设置hosts配置文件 2.1.3 关闭防火墙  2.1.4 关闭selinux  2.1.5 更换语言环境  2.1.6 更换时区  2.1.7 ssh免密 2.1.7.1 生成.ssh文件夹 2.1.7.2 进入文件夹 2.1.7.3 生成密码和私钥 2.1.7.4 免密授权 三、软

    2024年02月07日
    浏览(30)
  • 【数据结构】一篇文章带你彻底学会《后缀表达式》

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:c语言之路重点知识整合 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 后缀表

    2024年02月05日
    浏览(46)
  • 一篇文章学会如何在 NestJS 中开启微服务,微服务实战分享

    在软件开发的世界里,微服务架构是一个经常被提及的概念。但它到底是什么意思呢?为什么现在这么多团队和公司选择使用微服务?而NestJS又是如何帮助开发者构建微服务的? 想象一下,你想建一座大厦。你可以选择由一间强大的公司全权负责,从地基到尖塔的每一部分;

    2024年02月21日
    浏览(29)
  • 10min 学会Python 文件操作,我只看了这一篇文章

    平时,生活中我们见到的电影(MP4)、歌曲(MP3)、图片(JPG)、文本(txt)、表格(xlsx)…都可以被称为 文件。 这些文件的格式和文件里面的内容可能不同,但是他们有一个 共同特点: 数据都是保存在硬盘上的!!! 冯诺依曼体系: CPU(运算器和控制器)、存储器、输

    2023年04月08日
    浏览(39)
  • 看完这篇文章,保你学会C语言switch case 语句

    我的个人主页: ☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位 👍点赞 ⭐收藏 📝评论 特别标注 :本博主将会长期更新c语言的语法知识,初学c语言的朋友们,可以收藏订阅一下我的专栏: C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客 (这

    2023年04月26日
    浏览(32)
  • 【C++】类和对象(中)一篇文章带你学会六大默认成员函数

    如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。 对于下面的date类: 对于Date类,可以通过

    2024年03月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包