大数据处理与分析-Spark

导论

(基于Hadoop的MapReduce的优缺点)

MapReduce是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop的数据分析应用”的核心框架

MapReduce是一种用于处理大规模数据集的编程模型和计算框架。它将数据处理过程分为两个主要阶段:Map阶段和Reduce阶段。在Map阶段,数据被分割为多个小块,并由多个并行运行的Mapper进行处理。在Reduce阶段,Mapper的输出被合并和排序,并由多个并行运行的Reducer进行最终的聚合和计算。MapReduce的优缺点如下:

优点:

    可伸缩性:MapReduce可以处理大规模的数据集,通过将数据分割为多个小块并进行并行处理,可以有效地利用集群的计算资源。它可以在需要处理更大数据集时进行水平扩展,而不需要对现有的代码进行修改。
    容错性:MapReduce具有高度的容错性。当某个节点发生故障时,作业可以自动重新分配给其他可用的节点进行处理,从而保证作业的完成。
    灵活性:MapReduce允许开发人员使用自定义的Mapper和Reducer来处理各种类型的数据和计算任务。它提供了灵活的编程模型,可以根据具体需求进行定制和扩展。
    易于使用:MapReduce提供了高级抽象,隐藏了底层的并行和分布式处理细节。开发人员只需要关注数据的转换和计算逻辑,而不需要关心并发和分布式算法的实现细节。

缺点:

    适用性有限:MapReduce适用于一些需要进行大规模数据处理和分析的场景,但对于一些需要实时计算和交互式查询的场景,MapReduce的延迟较高,不太适合。
    复杂性:尽管MapReduce提供了高级抽象,但对于开发人员来说,编写和调试MapReduce作业仍然是一项复杂的任务。需要熟悉MapReduce的编程模型和框架,并理解分布式计算的概念和原理。
    磁盘IO开销:在MapReduce中,数据需要在Map和Reduce阶段之间进行磁盘IO,这可能会导致性能瓶颈。尽管可以通过合理的数据分区和调优来减少磁盘IO的开销,但仍然需要考虑和处理数据移动和复制的开销。

综上所述,MapReduce是一种适用于大规模数据处理的编程模型和计算框架,具有可伸缩性、容错性、灵活性和易用性等优点。然而,它在实时计算和交互式查询等场景下的适用性有限,同时开发和调试MapReduce作业的复杂性也需要考虑

Spark

一.Spark 基础

1.1 Spark 为何物

Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一。

    Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。

spark概述

第一阶段:Spark最初由美国加州伯克利大学( UC Berkelcy)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序

第二阶段:2013年Spark加入Apache孵化器项日后发展迅猛,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一( Hadoop磁盘MR离线式、Spark基于内存实时数据分析框架、Storm数据流分析框架 )

第三阶段:

1.3Spark的主要特点

Scala简介

Scala是一门现代的多范式编程语言 ,运行于IAVA平台(JVM,JAVA虚拟机)并兼容现有的JAVA程序

Scala的特点

① Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统。
② Scala语法简洁,能提供优雅的API。
③ Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中。

二.Spark VS Hadoop

尽管 Spark 相对于 Hadoop 而言具有较大优势,但 Spark 并不能完全替代 HadoopSpark 主要用于替代Hadoop中的 MapReduce 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。

实际上,Spark 已经很好地融入了 Hadoop 生态圈,并成为其中的重要一员,它可以借助于 YARN 实现资源调度管理,借助于 HDFS 实现分布式存储。

此外,Hadoop 可以使用廉价的、异构的机器来做分布式存储与计算,但是,Spark 对硬件的要求稍高一些,对内存与 CPU 有一定的要求

Spark生态系统

在实际应用中,大数据处理主要包括一下3个类型:
       ① 复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间。
       ② 基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间。
       ③ 基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。

当同时存在以上三种场景时,就需要同时部署三种不同的软件

核心组件:

Spark的应用场景

 Spark的运行架构

1.基本概念

在具体讲解Spark运行架构之前,需要先了解以下7个重要的概念。
① RDD:是弹性分布式数据集的英文缩写,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
② DAG:是有向无环图的英文缩写,反映RDD之间的依赖关系。
③ Executor:是运行在工作节点上的一个进程,负责运行任务,并为应用程序存储数据。
④ 应用:用户编写的Spark应用程序。
⑤ 任务:运行在Executor上的工作单元。
⑥ 作业:一个作业包含多个RDD及作用于相应RDD上的各种操作。
⑦ 阶段:是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”,或者也被称为“任务集”

2.Spark运行架构

(1)当一个Spark应用被提交时,首先需要为这个应用构建起基本的运行环境,即由任务控制节点创建一个SparkContext,由SparkContext负责和资源管理器的通信以及进行资源的申请、任务的分配和监控等。SparkContext 会向资源管理器注册并申请运行Executor的资源。
(2)资源管理器为Executor分配资源,并启动Executor进程,Executor运行情况将随着“心跳”发送到资源管理器上。

(3)SparkContext 根据 RDD 的依赖关系构建 DAG 图,DAG 图提交给 DAG 调度器进行解析,将DAG图分解成多个“阶段”(每个阶段都是一个任务集),并且计算出各个阶段之间的依赖关系,然后把一个个“任务集”提交给底层的任务调度器进行处理;Executor 向 SparkContext 申请任务,任务调度器将任务分发给 Executor 运行,同时SparkContext将应用程序代码发放给Executor。
(4)任务在Executor上运行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。

Spark运行架构特点:

1.每个application都有自己专属的Executor进程,并且该进程在application运行期间一直驻留,executor进程以多线程的方式运行Task

2.Spark运行过程与资源管理无关,子要能够获取Executor进程并保持通信即可

3.Task采用了数据本地性和推测执行等优化机制,实现“计算向数据靠拢”

核心-RDD

1.设计背景

1.许多迭代式算法《比如机器学习、图算法等)和交互式数据挖掘工具,共同之处是,不同计算阶段之间会重用中间结果
2.目前的MapReduce框架都是把中间结果写入到磁盘中,带来大量的数据复制、磁盘Io和序列化开销
3.RDD就是为了满足这种需求而出现的,它提供了一个抽象的数据结构
4.我们不必担心底层数据的分布式持性,只需将具体的应用逻辑表达为一系列转换处理

5.不同RDD之间的转换操作形成依赖关系,可以实现管道化,避免中间数据存储

RDD概念

1.一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,不同节点上进行并行计算

2.RDD提供了一种高度受限的共享内存模型,RDD是只读的记录分区集合,不能直接修改,只能通过在转换的过程中改

RDD典型的执行过程如下

优点:惰性调用,管道化,避免同步等待,不需要保存中间结果,每次操变得简单

RDD特性

1.高效的容错性

现有容错机制:数据复制或者记录日志RDD具有天生的容错性:血缘关系,重新计算丢失分区,无需回滚系统,重算过程在不同节点之间并行,只记录粗粒度的操作

2.中间结果持久化到内存,数据在内存中的多个RDD操作直接按进行传递,避免了不必要的读写磁盘开销

3.存放的数据可以是JAVA对象,避免了不必要的对象序列化和反序列化

RDD之间的依赖关系

父RDD的一个分区只被一个子RDD的一个分区所使用就是窄依赖,否则就是宽依赖。

阶段的划分

RDD运行过程

过上述对RDD概念、依赖关系和Stage划分的介绍,结合之前介绍的Spark运行基本流程,再总结一下RDD在Spark架构中的运行过程:

    (1)创建RDD对象;

    (2)SparkContext负责计算RDD之间的依赖关系,构建DAG;

    (3)DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行。

僖僖cc
关注 关注
  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark数据处理
qq_40910093的博客
04-11 1125
Spark是用于大规模数据处理的统一分析引擎,是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的大量数据PySparkSpark在Python中的第三方库。
Spark(一)—— 大数据处理入门
CoffeJoy
04-27 448
一、Spark介绍 组成 Spark组成(BDAS):全称伯克利数据分析栈,通过大规模集成算法、机器、人之间展现大数据应用的一个平台。也是处理大数据、云计算、通信的技术解决方案。 它的主要组件有: SparkCore 将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API。 SparkSQL Spark Sql 是S...
Spark高级应用】使用Spark进行高级数据处理分析
最新发布
weixin_39372311的博客
08-02 905
速度:通过内存计算,Spark比传统的MapReduce快100倍。易用性:提供丰富的API,支持Java、Scala、Python和R等多种语言。通用性:支持多种计算模式,如批处理、交互式查询、流处理和图计算。可扩展性:可以运行在Hadoop、Mesos、Kubernetes或独立集群上,支持大规模数据处理
spark数据处理
Andy_shenzl的博客
07-13 806
主要使用jupyter notebook or databricks 导入数据 from pyspark.sql import SparkSession #创建一个SparkSession对象来调用spark,如果是在交互式环境中不需要此步骤,可以直接使用spark spark = SparkSession.builder.appName('data_processing').getOrCreate() #本地导入数据 df=spark.read.csv('iris.csv',inferSchema=Tru
Spark大数据处理与分析
Xiaozou_Q的博客
03-06 1917
当子RDD的某一个分区的数据丢失时,若是窄依赖,只需重算和该分区对应的父RDD分区即可,而宽依赖则可能需要重算父RDD的所有分区。1.运行模式多样,可运行于独立的集群模式,Hadoop,Amazon EC2等云环境中,并且可以访问HDFS,Cassandra,HBase,HIve等多种数据源。宽依赖是指,父RDD的一个分区被子RDD的多个分区所用。现有容错机制:数据复制或者记录日志RDD具有天生的容错性:血缘关系,重新计算丢失分区,无需回滚系统,重算过程在不同节点之间并行,只记录粗粒度的操作。
人工智能-spark-基于Spark对全国历史气象数据的分析
03-14
基于Spark对全国历史气象数据的分析 用PySpark处理数据 将所有文件读为一个****RDD rdd = sc.wholeTextFiles("file:///" + os.getcwd() + "/china/") **数据清洗 ** 去除字母, -9999等无效数据 进行计算、排序等...
大数据期末课设~基于spark的气象数据处理分析
12-14
总结,这个项目不仅涵盖了Spark大数据处理技术,包括数据获取、数据清洗、数据分析和数据可视化,同时也体现了大数据在气象领域的应用价值。通过这样的实践,学生能够掌握大数据处理流程,并了解如何利用大数据...
数据算法--HadoopSpark大数据处理技巧.pdf
12-24
这两个例子都体现了Spark的强大之处,它能有效地处理大规模数据,并且提供了丰富的API用于数据处理分析。同时,通过自定义分区器和转换操作,我们可以实现更复杂的逻辑,以满足特定的业务需求。在实际的大数据项目...
Chapter3-_-大数据处理技术Spark-第3章-Spark的设计与运行原理_1
08-03
Spark是由美国加州伯克利大学的AMP实验室在2009年开发的分布式计算框架,专为大规模数据处理设计。它以其高效、易用和通用性获得了广泛关注,尤其是在2013年成为Apache软件基金会的重要项目之后。Spark的核心特性...
Spark数据处理简述
jmfxcy的博客
01-16 696
Spark, 数据处理
大数据手册(Spark)--Spark数据处理
WilenWu
01-13 5764
文章目录Spark Streaming Spark安装配置 Spark基本架构及运行流程 Spark基础知识(PySpark版) Spark机器学习(PySpark版) Spark数据处理(PySpark版) Spark Streaming Hadoop的MapReduce及Spark SQL等只能进行离线计算,无法满足实时性要求较高的业务需求,例如实时推荐、实时网站性能分析等,流式计算可以...
大数据基础平台——Spark大数据处理
Hydrox_的博客
09-18 1523
了解与掌握数据框的创建、选择、运算和聚合、增加、删除和修改、连接、变形。
spark scala 数据处理程序
qq_18857415的博客
11-16 985
1、kill任务        hadoop job-kill (job_num)        yarn application -kill (application_num)2、提交任务样例如下:        $SUBMIT--class $APP \        --masteryarn \        --driver-memory 1G \         --executor-m...
Spark大数据处理学习笔记 3.1
a1269936432的博客
06-12 268
将数据集(hello, world, scala, spark, love, spark, happy)存储在三个节点上,节点一存储(hello, world),节点二存储(scala, spark, love),节点三存储(spark, happy),这样对三个节点的数据可以并行计算,并且三个节点的数据共同组成了一个RDD。在编程时,可以把RDD看作是一个数据操作的基本单位,而不必关心数据的分布式特性,Spark会自动将RDD的数据分发到集群的各个节点。不同的是,数据的来源路径不同。
大数据技术原理与应用 第三篇 大数据处理与分析(三)Spark
CNDefoliation的博客
03-03 1672
大数据技术原理与应用 第三篇 大数据处理与分析 Spark 知识点总结与理解
大数据处理基础:什么是Spark
程序员光剑
01-25 872
1.背景介绍 大数据处理是现代计算机科学中的一个重要领域,它涉及处理和分析海量数据的技术。随着数据的增长,传统的数据处理方法已经无法满足需求。因此,大数据处理技术诞生,它可以处理和分析海量数据,从而提高数据处理的效率和准确性。 Apache Spark是一个开源的大数据处理框架,它可以处理和分析海量数据,并提供了一种高效、可扩展的数据处理方法。Spark的核心概念和联系将在本文中详细介绍。 ...
写文章

热门文章

  • LXC相关简单介绍与使用 3329
  • 大数据预处理技术 2303
  • 编译安装httpd服务 2234
  • mysql 联合查询 2041
  • 分布式数据库HBase 1901

最新评论

  • 分布式数据库HBase

    EricImpact: 表情包Eric来看文章了

  • 分布式文件系统之HDFS

    咸鱼鱼罐头: 咸鱼鱼实名阅读

  • 分布式文件系统之HDFS

    一果一叶一: 黄某实名观看表情包表情包

  • 大数据预处理技术

    z.z、: 大数据二班谢雨峰实名签到

最新文章

  • 初识Hadoop-概述与关键技术
  • 大数据处理与分析
  • 从传统型数据库到非关系型数据库
2024年1篇
2023年11篇
2022年34篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

国外留学毕业证书制作公司成都制作国外留学学位证定做贵阳办理海外证件制作青岛制作国外留学生学位证办理济南定做国外学历证补办南昌定做国外证书办理深圳国外成绩单补办武汉办理国外留学生学位证定做西宁代做国外成绩单补办北京办国外留学毕业证代办郑州补办海外学位制作长沙做海外学历证办理石家庄办国外文凭证书制作青岛做海外学历证办理贵阳做海外证件定做南昌海外文凭制作补办国外学位补办兰州定做国外学位证书代办沈阳做国外大学毕业证代做郑州制作海外学历文凭制作南京制作国外留学文凭制作武汉海外学位证补办上海制作国外博士毕业证制作深圳定做国外证件代做上海补办海外硕士毕业证广州代办国外留学文凭定做重庆补办国外文凭定做珠海办国外学历证定做制作国外博士毕业证代做大连办理国外留学毕业证制作济南补办海外文凭毕业证淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

国外留学毕业证书制作公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化