《Spark大数据技术与应用案例教程》完整全套教学课件_第1页
《Spark大数据技术与应用案例教程》完整全套教学课件_第2页
《Spark大数据技术与应用案例教程》完整全套教学课件_第3页
《Spark大数据技术与应用案例教程》完整全套教学课件_第4页
《Spark大数据技术与应用案例教程》完整全套教学课件_第5页
已阅读5页,还剩1198页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Spark

大数据技术与应用案例教程主讲教师:项目一

Spark入门项目二

Spark

RDD——弹性分布式数据集项目三

Spark

SQL——结构化数据处理项目四

Spark

Streaming——实时计算框架目

录项目五

Sp

ark

M

Llib——机器学习库项目六

Gra

ph

Fr

a

mes——图计算框架项目七

综合案例——分析银行个人信贷业务数据目

录项目一S

PPT

门课件k辑r可a全套p任务一

搭建Sp

ar

k单机环境任

建Sp

ar

k集群环境任务三开发并运行应用程序随着互联网和物联网技术的发展,人们产生和创造的数据呈爆炸式增长。传统的大数据处理框架HadoopMapReduce已无法满足人们对大规模数据的处理需求,因此一个更加高效的、用于

处理大规模数据的、开源的分布式计算框架Spark诞生了。本项目将介绍Spark的相关知识,搭建Spark单机环境和集群环境,开发

并运行应用程序。项

读第6页口了解Spark的发展历程、特点与应用场景。口熟悉Spark的生态系统、运行架构与运行基本流程。口掌握Spark的部署模式、PySpark命令与运行应用程序的方法。知

标第7页口了解Spark的发展历程、特点与应用场景。口熟悉Spark的生态系统、运行架构与运行基本流程。口掌握Spark的部署模式、PySpark命令与运行应用程序的方法。技

标第8页口增强遵守规则的意识,养成按规矩行事的习惯。口加强基础知识的学习,实现从量变到质变的转化,为个人的长远发展打下基础。素

标第9页任务一

Sp

ar

k

U不同的运行环境已搭建完成,接下来就可以开发并运行应用程序了。在此之前,需要选择合适的编程语言和开发工具,学习常用的PySpark命令,并掌握采用不同的部署模式运行应用程序的方法。本任务结合身份证户籍地查询案例,在PyCharm

中开发Spark应用程序,并分别在Spark本地环境和集群环境中运行应用程序。任

第11页Spark官方网站对其的定义是“ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎”。由于Spark是UC

BerkeleyAMPlaboratory(加

州大学伯克利分校的AMP实验室)开源的类Hadoop

MapReduce的通用并行框架,是一个基于内存计算、支持分布式计算和并行计算的大数据处理框架。第12页搭建S

p

a

rk单机环境一

、S

p

a

r

k的发展历程时间点说明2009年提供一个更快、更灵活、更易用的分布式计算框架,以便更好地进行大规模数据处理和机器学习等任务2010年Spark正式发布开源代码2013年Spark成为Apache软件基金会的孵化器项目,解决了一些bug,增加了新的功能,并改进了可用性问题2014年Spark成为Apache软件基金会的顶级开源项目之一,并发布了第一个稳定版本Spark

1.0.0Spark提供了丰富的工具和API,

可以用于结构化数据处理、流数据处理、机器学习及图形处理等多种场景。Spark的发展历程如表所示。一、Sp

ark的发展历程搭建S

p

a

rk单机环境第13页时间点说

明2015年Spark1.5.x系列版本发布,提升了Spark的性能,增加了一些机器学习算法和工具等

使得Spark变得更为全面和强大2016年Spark2.0.x系列版本发布,大幅度改进了API兼容性和查询优化器,支持结构化的

流数据处理2017年Spark2.2.x系列版本发布,更新内容主要针的是系统的可用性、稳定性及代码润色2018年Spark2.4.x系列版本发布,进一步改进了流数据处理和机器学习功能,并集成了更

多的深度学习框架一、S

p

a

r

k的发展历程搭建S

p

a

rk单机环境第14页时间点说

明2020年Spark3.0.0版本发布,能够更好地支持Python和R语言,并提供了更强大的分布式SQL查询引擎。加强了与Apache

Arrow、Delta

Lake等数据处理技术的集成2021年Spark3.1.1版本发布,提升了Python的可用性,增强了ANSI

SQL兼容性,加强了查

询优化等2022年Spark3.3.0版本发布,提升了查询性能,简化了从传统数据仓库的迁移,提升效率2023年Spark3.4.0版本引入Python客户端,增强结构化数据流,增加Pandas

API的覆盖范

围,提供Numpy输入支持,通过内存分析提高开发效率和可调用性等一

、Sp

a

r

k的发展历程搭建S

p

a

rk单机环境第15页Spark是与HadoopMapReduce类似的通用并行计算框架,它拥有HadoopMapReduce所具有的优点,如高可靠、高扩展、高容错等。同时,Spark还兼容HDFS、Hive

等,可以很

好地与Hadoop系统融合,从而弥补HadoopMapReduce高延迟的性能缺点。Spark的特点可

以归纳为以下几点:第16页二

、S

p

a

r

k的

点搭建Spar

k单机环境Spark基于内存的运算效率快了100倍以上,基于磁盘的运算效率快了10倍以上。Spark充分利用内存对数据进行计算,减少了对磁盘的读写操作,从而提高了Spark的计算效率。搭建S

p

a

rk单机环境二

、Sp

a

r

k的特点速

快第17页(1)Spark支持Python、Scala、Java和R等多种编程语言,并提供了80多种高阶算法。此外,研究人员可以通过PySpark或SparkShell进行交互式编程。搭建Spark单机环境二

、Sp

a

rk的特点用

好(2)易第18页Spark提供了多种完善的组件,如交互式查询(Spark

SQL)、实时流处理(SparkStreaming)、机器学习库(SparkMLlib)和图计算(SparkGraphX)。Spark

支持上述组件在同一个应用程序中无缝地结合使用,减少了大数据开发和维护的人力

成本和部署平台的物力成本。通

性(3)强搭

建S

p

a

rk单机环境二

、Sp

a

r

k的特点第19页Spark可以运行于独立的集群模式中,也可以运行于Hadoop中,还可以运行于Amazon

EC2(亚马逊弹性计算云)等云环境中。对于数据源而言,Spark可以从

HDFS、HBase

、Cassandra、Hive等多种途径读取数据。(4)

样搭建Sp

a

rk单机环境二

、Sp

a

r

k的特点第20页Spark功能强大,其应用场景也十分广泛。从宏观角度出发,可以将Spark的应用场景归纳为数据科学应用和数据处理应用。第21页三

、S

p

a

r

k的

景搭建Spa

rk单机环境口Spark可以用来进行数据分析和建模。口在数据分析方面,Spark提供了丰富的API来支持各种数据操作,如数据清洗、转换、筛选、聚合等。口数据科学家对数据进行初步分析,并从中发现有价值的信息。第22页三

、S

pa

r

k的

景搭建Spa

r

k单机环境数据科学应用数据科学应用口

在建模方面,Spark提供了机器学习库MLlib,该库提供了一系列算法和工具,包括常见的机器学习算法、特征化工具等。口

提供了流式处理库Streaming和图处理库GraphX,这些库也可以用来解决许多数据科学应用中的问题。搭建Spa

r

k单机环境三

、S

p

a

r

k的应用场景第23页□Spark可以实现快速查询、实时日志采集处理、业务推荐、定制广告、用户图计算等功能。主要应用在广告、推荐系统等业务中。口

广告业务需要利用大数据进行应用分析、效果分析、定向优化等;口

推荐系统则需要利用大数据优化相关排名,进行个性化推荐及热点点击分析等。典型的企业应用有淘宝、腾讯、优酷土豆等。第24页三

、Sp

a

r

k的应用场景搭建Spa

r

k单机环境数据处理应用腾讯

腾讯大数据使用Spark平台来支持挖掘分析类计算、交互式查询计算,以及允许误差范围的快速计算。

SQL查询性能普遍比MapReduce高

两倍以上,利用内存计算和内存表的特性,至少在10倍以上。口

迭代计算与挖掘分析方面,精准推荐将小时和天级别的模型训练转变为Spark的分钟级别的训练。口

围绕“数据+算法+系统”的技术方案,实现了数据实时采集、算法实时训练、系统实时预测的

全流程实时并行高维算法。第25页三、Sp

a

r

k的应用场景搭建Spa

r

k单机环境口将Spark应用于多次迭代的机器学习算法、高计算复杂度的算法等,从而解决以往系统存在的效率低、代码维护不易等问题。口将图处理库应用于多种计算场景,包括基于度分布的中枢节点发现、基

于最大连通图的社区发现、基于三角形计算的关系衡量、基于随机游走

的用户属性传播等。第26页三、Sp

a

r

k的应用场景搭建Spa

r

k单机环境淘宝□Spark交互响应快,模拟广告投放计算效率高、延迟小,机器学习和图计算等迭代计算的性能好。优酷土豆使用Spark替换了以往使用的Hadoop集群。□Spark已经广泛应用于优酷土豆的视频推荐、广告业务等场景。第27页三、Sp

a

r

k的应用场景搭建Spa

r

k单机环境优酷土豆Spark单机环境对计算机硬件要求较低,搭建方法比较简单,适合初学者入门使用。由于Spark没有提供文件存储系统,因此一般将Spark和Hadoop部署在一起,由Hadoop的HDFS、HBase等组件负责数据的存储和管理。任

任务分析第28页步骤1参考本书配套素材“

项目一”/“安装与配置前置环境”文档,安装和配置以下前置环境。>

VMware虚拟机:VMwareWorkstationPro

17.0.0。Linux操作系统:RedHatEnterpriseLinux

8.7.064位。JDK:JDK

11。Hadoop:Hadoop

3.3.4。Python:Python

3.9.11。任

第29页1

.下载并安装Sp

a

r

k搭建Spark单机环境时,首先需要下载并安装Spark,其安装路径为“/usr/local/spark”,具体操作如下。步骤2在Linux操作系统中打开浏览器,访问“/dist/spark/”,在打开的页面中单击“spark-3.2.3/”链接文字,跳转至下载界面,单击“spark-3.2.3-bin-without-hadoop.tgz”链接文字,下载Spark安装包,如图所示。在Linux中,浏览器下载的内容默认存放在“home/hadoop下载”目录下。其中,“hadoop”为Linux的用户名。任

第30页1

.下载并安装SparkC

0

8

https://archive

apache.org/dist/spark/

三Customer

Portal

Red

Hat

Red

Hat

Products

Docu..

Red

Hat

Enterprise

Linu...》Index

of/dist/spark/spark-3.2.3Name

Last

modified

Size

Descriptionspark-2.4.6/spark-2.4.7/spark-2.4.8/spark-3.0.0-preview/spark-3.0.0-preview2/□

spark-3.0.0/spark-3.0.1/spark-3.0.2/spark-3.0.3/spark-3.1.1/spark-3.1.2/□

spark-3.1.3/spark-3.2.0/spark-3.2.1/spark-3.2.2/spark-3.2.3/ spark-3.2.4/spark-3.3.0/spark-3.3.1/spark-3.3.2/spark-3.4.0/?]KEYS2020-06-0518:022020-11-0518:452022-06-1711:132019-11-0623:152019-12-2218:532020-06-1609:192020-11-0518:462021-02-1917:242022-06-1711:122021-03-0211:012022-06-1711:122022-06-1711:122021-10-1309:092022-06-1711:122022-07-1514:432022-11-2818:042023-04-1313:462022-06-1711:112022-10-2507:332023-02-1521:152023-04-1317:542023-04-1317:55109KParentDirectorySparkR_3.2.3.tar.gzSparkR_3.2.3.tar.gz.ascSparkR_3.2.3.tar.gz.sha512pyspark-3.2.3.tar.gz

268Mpyspark-3.2.3.tar.gz.asc

862pyspark-3.2.3.tar.gz.sha512

151spark-3.2.3-bin-hadoop2.7.tgz

260Mspark-3.2.3-bin-hadoop2.7.tgz.asc862spark-3.2.3-bin-hadoop2.7.tgz.sha512

160spark-3.2.3-bin-hadoop3.2-scala2.13.2

2

11-1418:47

293Mspark-3.2.3-bin-hadoop3.2-scala2.13.tgz.asc

2022-11-1418:47862spark-3.2.3-bin-hadoop3.2-scala2.13.tgz.sha5122022-11-1418:47170spark-3.2.3-bin-hadoop3.2.tgzspark-3.2.3-bin-hadoop3.2.tgz.ascspark-3.2.3-bin-hadoop3.2.tgz.sha512spark-3.2.3-bin-without-hadoop.tgzspark-3.2.3-bin-without-hadoop.tgz.ascspark-3.2.3-bin-without-hadoop.tgz.sha521022-11-1418:47165spark-3.2.3.tgz

2022-11-1418:4727M当

spark-3.2.3.tgz.ascspark-3.2.3.tgz.sha5122022-11-1418:478622022-11-1418:47146任

第31页1

.下载并安装Sp

ar

kD

U2022-11-1418:47287M2022-11-1418:478622022-11-1418:471602022-11-1418:47200M2022-11-1418:47342K2022-11-1418:47862

2022-11-1418:47150言自心

言小

言小

言心

自心

言心2022-11-1418:47862步骤3执行以下命令,将“spark-3.2.3-bin-without-hadoop.tgz”文件解压到“/usr/local/”目录下。#解压文件到“/usr/local/”目录下[hadoop@bogon~]$sudotar-zxf~/下载/spark-3.2.3-bin-without-hadoop.tgz-C/usr/local/任

第32页1

.下载并安装Sp

ar

k步骤4执行以下命令,将“spark-3.2.3-bin-without-hadoop

”目录重命名为“spark

”,Spark的安装路径即可设置为“/usr/local/spark”。[hadoop@bogon~]$cd#将“spark-3.2.3-bin[hadoop@bogonlocal]/usr/localwithout-hadoop”目录重命名为“spark”$sudomv./spark-3.2.3-bin-without-hadoop

./spark任

第33页1

.下载并安装Spark步骤5执行以下命令,将“spark”子目录的所有权限赋予hadoop用户。[hadoop@bogon

local]$sudochown-R

hadoop:hadoop

./spark任

第34页1

.下载并安装Spark步

骤1执行以下命令,复制Spark安装文件中自带的配置文件,并重命名为“spark-env.sh”。[hadoop@bogon

local]$cd

spark[hadoop@bogon

spark]$sudocp

./conf/spark-env.sh.template

./conf/spark-env.sh任

2

.

添加配置信息

第35页安装完Spark后,需要在其配置文件中添加配置信息,配置不同的环境变量。具体操作如下。步骤2执行以下命令,使用Vim编辑器打开“spark-env.sh”配置文件。p@bogon

s

p

ar

k]$su

do

vim

./c

o

nf/s

p

ar

k-e

nv.s

h任

第36页2

.添加配置信息[h

a

d

o步骤3按“I”键进入编辑模式,使用键盘的“个”键调整光标位置,在配置文件的首信息,终端显示如图所示。行添加以下配置口

hadoop@bogon:/usr/local/spark

X文件(F)编辑(E)查看(V)搜索(S)终端(T)帮助(H)exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop

classpath)export

JAVA_HOME=/usr/lib/jvm/jdk-11exportHAD00P_HOME=/usr/local/hadoopexport

HAD00P_CONF_DIR=/usr/local/hadoop/etc/hadoop#!/usr/bin/envbash-

-

-

-

1,1顶端任

第37页2

.添加配置信息#配置信息用于实现Spark与Hadoop之间的交互exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)#配置JDK的安装路径exportJAVA_HOME=/usr/lib/jvm/jdk-11#配置Hadoop的安装路径exportHADOOP_HOME=/usr/local/hadoop#Hadoop配置文件的路径exportHADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop任

2

.

第38页步骤4配置完信息后,按“esc”键退出编辑模式,然后输入“:wq”,最后按“Enter

”键保存并关闭配置文件。任

2

.

添加配置信息

第39页任

2

.

息步骤5使用同样方法,打开“.bashrc

”配置文件,添加配置信息。[hadoop@bogonspark]$vim~1.bashrc#配置信息exportJAVA_HOME=/usr/lib/jvm/jdk-11exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexportPATH=${JAVA_HOME}/bin:$PATHexportPATH=$PATH:${JAVA_HOME}/bin:/usr/local/hbase/bin第40页使用同样方法,打开“.bashrc”配置文件,添加配置信息。exportHADOOP_HOME=/usr/local/hadoopexportSPARK_HOME=/usr/local/sparkexportPYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j--

src.zip:$PYTHONPATHexportPYSPARK_PYTHON=python3exportPATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH第41页2

.

息步骤5任

施步

6执行以下命令,使环境变量生效。[ha

doo

p@bo

g

on

s

p

ark]$s

o

urc

e

~1.b

a

s

h

r

c任

第42页2

.添加配置信息添加好配置信息后就可以直接使用Spark了,不需要像Hadoop那样运行启动命令。因此,通过运行

Spark自带的示例可以验证Spark单机环境是否搭建成功。执行以下命令,运行Spark自带的示例SparkPi,若能输出Pi的值即可验证Spark单机环境搭建成功。[hadoop@bogonspark]$./bin/run-example

SparkPi任

第43页3

.验证Sp

a

r

k单机环境是否搭建成功为了能从大量的输出信息中快速找到我们想要的执行结果,可以使用“grep”命令进行过滤。执

行以下命令输出Pi的值,如图所示。hadoop@bogon:/usr/local/spark

X文件(F)编辑(E)查看(V)搜索(S)终端(T)帮助(H)spark]$./bin/run-exampleSparkPi

2>&1

|grep"Pi

is"3.1417357086785436[hadoop@bogon

spark]$./bin/run-example

SparkPi2>&1|grep

"Pi

is"任

第44页3

.验证Sp

a

r

k单机环境是否搭建成功[hadoop@bogon

Pi

isroughlySpark

的发展历程Spark的特点Sp

ark的应用场景课

结第45页任务二搭

Sp

a

r

k

集群环境

USpark集群环境是由一台或多台计算机组成的分布式计算环境,这些计算机通

过网络连接在一起,用于并行处理大规模数据。Spark集群通常由一个Master节

点和多个Worker节点组成。其中,Master节点负责调度工作并分配任务给Worker

节点执行;Worker节点负责执行不同的任务,并将执行结果返回给Master节点。

Worker节点的数量可以根据需求进行动态调整,以适应大规模数据处理应用程序的需求。搭建Spark集群环境之前,我们先来学习一下Spark的生态系统、运

行架构、运行基本流程和部署模式。任

第47页Spark的设计遵循“一个软件栈满足不同应用场景”的理念,因此逐渐形成了一套成熟的生态系统。Spark的生态系统又称为伯努利数据分析栈(Berkerleydataanalyticsstack,BDAS),它

是基于内存计算的大数据并行计算框架,适用于各种各样分布式平台系统。一、Sp

ark的生态系统搭建S

park集群环境第48页□Spark生态系统以SparkCore为核心,专注于数据的处理分析;口

持Local

、Standalone

、YARN和Kubernetes等多种部署模式,可

以借助HDFS

、MySQL

、HBase和Amazon

S3等实现数据存储;口提供了Spark

SQL

、Spark

Streaming

、SparkMLlib和Spark

GraphX等多种组件。搭建Spark集群环境一

、Spa

r

k的生态系统第49页第50页SparkGraphXRDDKubernetesAmazonS3SparkStreaming内存管理StandaloneMySQLSpark

SQL任务调度LocalHDFS组件SparkCore部署模式数据存储SparkMLlib存储管理YARNHBaseSpark

Core和Spark组件的详细介绍一

、Spa

r

k的生态系统搭建Spa

rk集群环境U口可以实现Spark的基本功能,包括任务调度、内存管理、存储管理和故障恢复等。口建立在统一的抽象数据集(RDD)之上,提供用于创建分布式数据处理应用程序的API。口旨在提高数据处理应用程序的执行效率,并允许在更广泛的问题域中执行交互式查询和分析。第51页一、S

p

ar

k的生态系统(1)Spark

Core搭建Spa

rk集群环境口

SparkSQL是用于操作结构化数据的组件,将SQL

与Spark应用程序无缝衔接。口可以使用Python

、Scala

、Java或R语言的API实现,具有易整合的特点。口提供访问各种数据源的通用方法,以相同的方式连接到MySQL、Hive、HBase

等多种数据源。第52页一、S

p

ar

k的生态系统(2)Spark

SQL搭建Spa

rk集群环境口

于实时流处理的组件,它能够对实时数据流进行流式处理。口

具有很好的可扩展性、高吞吐量和容错性。口支持从Kafka

、Flume

、Twitter

和TCP套接字等多种数据源中提取数据。

口提供多种API来表达复杂的处理算法。第53页一、S

p

ar

k的生态系统搭建Spa

rk集群环境(3)Spark

Streaming(4)SparkMLlib

用于在分布式计算环境中进行机器学习任务的组件口提供了常用的机器学习算法,旨在简化机器学习的工程实践工作。口

由多种工具组成,包括分类、回归、聚类、协同过滤等算法工具,特征提取、转化、降维、选择等特征化工具,线性代数、统计、数据处理等实用工具、底层的优化原语和高层的管道API。第54页一、S

p

ar

k的生态系统搭建Spa

rk集群环境口

SparkGraphX是用于处理和分析大规模图数据的组件。口能够通过Spark的分布式计算能力有效解决传统单机处理大规模图数据的效率问题。口还提供了一系列高级的图形算法,帮助用户分析和挖掘图数据中有价值的信息。第55页一、S

p

ar

k的生态系统搭建Sp

ark集群环境(5)Spark

GraphX和每个工作节点上负责具体任务的执行器,如图所示。DriverSparkContext

ClusterManager搭建Spa

rk集群环境

第56页一般情况下,Spark的运行架构包括每个应用的驱动器、集群资源管理器、运行作业任务的工作节点二

、Sp

a

r

k的运行架构ExecutorTaskExecutorTaskCacheTaskCacheTaskHDFS、HBaseWorkerNodeWorkerNodeSpark运行架构中涉及的概念及其解释如下:口

应用(Application):用户编写的Spark应用程序,包括实现Driver功能的代码和在集群多个节点上运行的程序代码。口

驱动器(Driver):运行应用程序的main函数,创建SparkContext对象,其目的是为Spark应用程序准备运行环境。在Spark中,由SparkContext负责与ClusterManager通信,进行资源申请、

任务的分配和监控等。当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。二

、Spar

k的运行架构搭建S

p

ark集群环境第57页口集群资源管理器(ClusterManager):负责资源管理和调度,根据应用程序的需求来分配集群中的计算节点和内存资源。常见的集群资源管理器类型有Standalone、YARN等

。口

工作节点(Worker):集群中运行Spark应用程序的节点。Worker就是物理节点,可以在上面

启动Executor进程。口

执行器(Executor):在每个Worker上为某应用程序启动的一个进程,该进程负责运行Task,并且负责将数据保存在内存或者磁盘上,每个任务都有各自独立的Executor。Executor是一个执

行Task的容器。二

、Spar

k的运行架构搭建S

park集群环境第58页口弹性分布式数据集(resilientdistributeddatasets,RDD):Spark中的基本数据结构,是一组不可变的分布式对象集合。口

有向无环图(directedacyclicgraph,DAG):当用户提交一个作业时,Spark会将其转化为一组有向无环图的形式,反映RDD之间的依赖关系。口任务(Task):被送到某个Executor上的工作单元,是运行应用的基本单位。二

、S

p

a

r

k的运行架构搭建S

park集群环境第59页口

作业(Job):一个作业包含多个RDD及作用于相应RDD上的各种操作,支持多个任务的并行计算。一个应用中往往会产生多个作业。口阶段(Stage):作业调度的基本单位,每个阶段可分为多个任务,这些任务相互依赖。二

、Spar

k的运行架构搭建S

park集群环境第60页搭建Spa

rk集群环境总而言之,在Spark中

一个应用由一个驱动器和若干个作业组成,一个作

业可以划分为多个阶段,每个阶段可以由多个任务

组成,如图所示。第61页任务n任务n任务1阶段1作业1驱动器任务1阶段1作业p应用任务1阶段m任务1阶段m任务2任务2任务n任务n任务2任务2二

、Sp

a

r

k的运行架构USpark运行的基本流程如图所示。

下面对Spark运行的原理进行详细介绍DriverSparkContextRDD对象构建DAG1.注册并申请资源Cluster

Manager分配并监控资源使用情况6.注销并释放资源3.资源反馈

2.分配资源4.注册并申请任务。DAGDAG调度器将DAG分解为阶段任务集任务调度器提交和监控任务5.发送任务WorkerNodeExecutor进程汇报资源使用情况三

、S

p

a

r

k运行的基本流程搭建S

park集群环境第62页启动Spark应用程序,为这个应用程序构建基本的运行环境,即根据Spark应用程序提交的参数在相应位置创建Driver进程,由Driver进程根据参数信息初始化

SparkContext对象。SparkContext对象根据参数向ClusterManager注册并申请资源。(1)

资源三

、S

p

a

r

k运行的基本流程搭

建Spark集群环境第63页ClusterManager接收到应用的注册请求后,使用自己的资源调度算法,为应用程序启动Spark集群中Worker节点上的多个Executor进程。三

、S

p

a

r

k运行的基本流程搭建S

park集群环境配

源(2)分第64页Executor进程启动后,会向ClusterManager反馈资源使用情况,便于ClusterManager对Executor进行状态监控。若监控到Executor进程启动失败,则会立刻重新启动。三

、S

p

a

r

k运行的基本流程搭建S

park集群环境资

馈(3)第65页搭建Spa

rk集群环境(4)注册并

申请

任务Executor进程向SparkContext注册并申请任务(Task)。三

、S

p

a

r

k运行的基本流程第66页□

SparkContext根据RDD之间的依赖关系构建DAG

;口

将DAG

提交给DAG调度器进行解析,分解成阶

段(Stage),

形成任务集(TaskSet);口

将任务集提交给任务调度器(TaskScheduler),并分配给不同的Executor进程执行。(5)发送任务三、S

p

a

r

k运行的基本流程搭建S

park集群环境第67页当程序执行完毕后,SparkContext向ClusterManager申请注销并释放申请的资源。第68页三

、S

p

a

r

k运行的基本流程搭建Spa

rk集群环境(6)注销并释放资源使用Spark进行大规模数据计算与分析时,需要将开发好的应用程序部署到Spark上运行。Spark的部署模式可以分为两种类型,一种是本地部署模式,另一种是集群部署模式。第69页四

、S

p

a

r

k的部署模式搭建Spa

rk集群环境本地部署模式即Local部署模式,它是指将Spark应用程序部署在单个计算机上,所有的Spark组件都在同一个JVM进程中。在Local部署模式

,Spark应用程序可以利用单台计算机上的所有资源并行处理数据。第70页四

、Spark的部署模式搭建Spa

rk集群环境1

.本地部署模式1

.本地部署模式通常情况下,Local部署模式适用于开发、测试和调试Spark应用程序时的本地开发环境,并不适合部署到生产环境中使用。第71页四

、Spark的部署模式搭建Spa

rk集群环境集群部署模式是指在一个由多台计算机组成的集群中运行Spark应用程序的模式。在集群部署模式下,Spark的各个组件分布式地运行在多台计算机上,使Spark可以在多个节点上并行处理大规模数据。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第72页集群部署模式适用于企业的实际生产环境。Spark集群部署模式包括Standalone部署模式、YARN部署模式和Kubernetes部署模式,它们的详细介绍如下:搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第73页

St

a

n

d

a

lo

n

e部署模式Standalone部署模式是指在Spark集群中没有使用资源管理框架(如YARN)的部署模式。在这种部署模式下,由Spark的Master节点管理整个集群的计算资源,并将任务分发给Worker节点进行执行。第74页搭

建Spa

rk集群环境四

、S

p

a

r

k的部署模式2

.集群部署模式

Stan

d

a

lo

n

e部署模式Spark应用程序通过与Master节点通信来请求资源,然后Master节点根据Worker节点的负载和可用性将任务分配给它们。Standalone部署模式的构建过程非常简单,并且比其他部署模式更容易维护。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第75页

Stan

d

a

lo

n

e部署模式由于它缺乏资源管理框架所提供的一些高级特性,导致它在大规模集群的管理、资源调度等方面可能会有一些局限性。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第76页

YA

RN部署模式YARN部署模式是指将Spark应用程序部署到运行着YARN的集群中。在这种部署模式下,由YARN

管理集群上的所有资源,并允许Spark应用程序向YARN

请求资源以完成任务。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第77页

YA

RN部署模式Spark应用程序提交到YARN上

,YARN会根据应用程序的需求自动调度、分配和管理集群资源,使Spark应用程序可以高效率地运行在大规模计算集群上。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第78页

YA

RN部署模式YARN

已经广泛应用于大数据处理领域,所以YARN

部署模式对于需要进行大规模数据处理的场景非常适用。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第79页

Ku

ber

n

e

te

s部署模式Kubernetes部署模式是将Spark应用程序部署到运行着Kubernetes的集群中。Kubernetes是一种开源容器编排系统,它可以管理分布式应用程序在容器化环境中的部署、扩展和维护。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第80页

Ku

ber

n

e

te

s部署模式在Kubernetes中,Spark应用程序可以通过使用操作性资源规范定义所需的计算和存储资源,以及工作负载的调度和启动策略。具有高可用性、自动扩展、故障恢复等强大的特性。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第81页

Ku

be

r

n

ete

s部署模式Kubernetes的出现极大地简化了大数据处理和人工智能等领域的应用程序的部署和管理,并逐渐成为云原生技术栈的标配。搭建Spa

rk集群环境2

.集群部署模式四

、Spark的部署模式第82页

任务分析Spark集群环境可以分为Spark伪分布式集群环境和Spark完全分布式集群环境。Spark伪分布式集群环境是指在一台计算机上模拟分布式计算的环境,其原理是通过在一台计算机上运行多个进程来模拟集群中的各个节点,从而并行处理数据,常用于开发、测试和调试应用程序。任

施第83页

任务分析Spark完全分布式集群环境则是指由多台计算机组成的分布式计算环境,每个

节点都有自己的CPU、内存和磁盘资源,并且Spark应用程序可以跨多个节点进行并行计算,常用于处理企业实际生产环境中的业务。任

施第84页步骤1搭建Spark伪分布式集群环境参考任务一中的任务实施,搭建Spark单机环境。参考本书配套素材“项目一”/“搭建Hadoop伪分布式集群”文档,搭建Hadoop伪分布式集群。Spark伪分布式集群环境一般与Hadoop伪分布式集群部署在一起,具体的操作方法如下:1

.搭建Sp

a

r

k伪分布式集群环境任

施第85页步骤2执行以下命令,查询自己计算机的IP地址,用于设置配置信息。IP地址的查询结果,如图所示。[h

a

d

o

o

p

@bo

g

o

n

~]$ifc

onfigens160:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu

1500inet[192.168.22.134]netmask

broadcast

55inet6fe80::250:56ff:fe31:cla8prefixlen64

scopeid

0x20<link>ether

00:50:56:31:cl:a8

txqueuelen

1000(Ethernet)RX

packets

1430

bytes

1767172(1.6

MiB)RX

errors

0

dropped

0

overruns

0

frame

0TX

packets

777

bytes

54310(53.0

KiB)TX

errors0dropped

0

overruns

0

carrier0

collisions

0任

1

.搭建Sp

a

r

k伪分布式集群环境

第86页[hadoop@bogon~]$cd/usr/local/spark/conf#打开“spark-env.sh”

配置文件[hadoop@bogon

conf]$vim

spark-env.sh#配置信息,将此处的IP地址修改为步骤2查询到的IP

地址export

SPARK_MASTER_IP=

34export

SPARK_LOCAL_IP=

34SPARK_MASTER_PORT=7077任

1

.搭建Sp

a

r

k伪分布式集群环境

第87页执行以下命令,打开“spark-env.sh”配置文件,添加以下配置信息。步骤3步骤4执行以下命令,使环境变量生效。[hadoop@bogon

conf]$source

spark-en

v.sh步骤5

执行以下命令,启动Master节点。[hadoop@bogon

conf]$cd

/usr/local/spark[hadoop@bogon

spark]$./sbin/start-m

aster.sh步骤6执行以下命令,启动Worker节点。[hadoop@bogon

spark]$./sbin/start-worker.sh

spark://localhost:7077

1

.搭建Sp

a

r

k伪分布式集群环境

第88页步骤7执行以下命令,验证Spark单机伪分布式集群是否启动成功。若输出结果中既出现Master节点[hadoop@bogonspark]$jps,又出现Worker节点,则证明Spark伪分布式集群

3328

Master3414

Worker3483

Jps启动成功,如图所示。任

1

.搭建Sp

a

r

k伪分布式集群环境

第89页[hadoop@bogon

spark]$jps步

8执行以下命令,验证Spark伪分布式集群是否可以正常使用,若能输出Pi值,则证明Spark伪分布式集群可以正常使用,如图所示。hadoopebogon

spark]$./bin/run-example

SparkPi2>&1|grep

"Pi

is"Pi

is

roughly

3.138275691378457[hadoop@bogon

spark]$./bin/run-exampleSparkPi2>&1|grep

"Pi

is"任

1

.搭建Sp

a

r

k伪分布式集群环境

第90页步骤1搭建Spark完全分布式集群环境参考任务一中的任务实施,搭建Spark单机环境。参考“项目一”/“搭建Hadoop完全分布式集群”文档,搭建Hadoop完全分布式集群。任

2

.搭建Sp

ar

k完全分布式集群环境

第91页步骤2在Master节点上执行以下命令,打开“.bashrc”配置文件,添加以下配置信[hadoop@Master~]$vim~1.bashrc#配置信息export

SPARK_HOME=/usr/local/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin任

施第92页

2

.搭建Sp

ar

k完全分布式集群环境

步骤3执行以下命令,使环境变量生效。[ha

do

o

p@M

a

s

t

er

~]$s

our

c

e

~/.b

a

s

hr

c任

2

.搭建Sp

ar

k完全分布式集群环境

第93页步骤4在Master节点上执行以下命令,复制“workers.template”配置文件,并命名为“workers”;打开“workers”配置文件,将“localhost”修改为以下配置信息。[hadoop@Master~]$cd

/usr/local/spark#复制

“workers.template”配置文件,并命名为

“workers”[hadoop@Master

spark]$sudo

cp./conf/workers.template

./conf/workers[hadoop@Master

spark]$sudo

vim

./conf/workers#配置信息Worker1Worker22

.搭建Sp

ar

k完全分布式集群环境任

施第94页[hadoop@Master

spark]$sudo

cp

./conf/spark-env.sh.template

./conf/spark-env.sh[hadoop@Master

spark]$sudo

vim

./conf/spark-env.sh#配置信息exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)export

JAVA_HOME=/usr/lib/jvm/jdk-11export

HADOOP_HOME=/usr/local/hadoopexport

HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoopexport

SPARK_MASTER_IP=

36export

SPARK_MASTER_PORT=7077export

SPARK_WORKER_MEMORY=512mexport

SPARK_WORKER_CORES=1export

SPARK_WORKER_INSTANCES=1export

SPARK_EXECUTOR_MEMORY=512mexport

SPARK_EXECUTOR_CORES=1在Master节点上执行以下命令,

制“spark-env.sh.template”配置文件,并命名为“spark-

env.sh”;打开“spark-env.sh”配

置文件,添加以下配置信息。2

.搭建Sp

ar

k完全分布式集群环境步骤5任

施第95页步骤6在Master节点上执行以下命令,压缩“/usr/local/spark”目录。#切换到“/usr/local”目录[hadoop@Master

spark]$cd

/usr/local#压缩“/usr/local/spark”目录[hadoop@Master

local]$sudotar-zcf~/spark.master.tar.g

z

./spark第96页任

2

.搭建Sp

ar

k完全分布式集群环境

步骤7在Master节点上执行以下命令,将压缩后的“~1.spark.master.tar.gz”复制到Worker1和Worker2#切换到根目录[hadoop@Master

local]$cd~#将“~/.spark.master.tar.gz”复制到Worker1节点[hadoop@Master~]$sudo

scp./spark.master.tar.gz

Worker1:/home/hadoop#将“~/.spark.master.tar.gz”复制到Worker2节点[hadoop@Master~]$sudo

scp

./spark.master.tar.gz

Worker2:/home/hadoop节点

2

.搭建Sp

ar

k完全分布式集群环境

第97页分别在Worker1和

Worker2节点上执行以下命令,解

压从Master节点上复制过来的“~1.spark.master.tar.gz”文件,并赋予权限给hadoop

用户。#删除已经存在的“/usr/local/spark”[hadoop@Worker1

~]$sudo

rm

-rf/usr/local/spark#解压“~1.spark.master.tar.gz”

文件[hadoop@Worker1~]$sudotar-zxf~/spark.master.tar.gz-C/usr/local#赋予权限给hadoop

用户[hadoop@Worker1

~]$sudochown-Rhadoop

/usr/local/s

park2

.搭建Sp

ar

k完全分布式集群环境任

施步骤8第98页步骤9在Master节点上执行以下命令,启动Hadoop集群。[hadoop@Master

~]$cd

/usr/local/hadoop#启动dfs[hadoop@Master

hadoop]$./sbin/start-dfs.sh#启动y

arn[hadoop@Master

hadoop]$./sbin/start-y

arn.sh#启动historyser

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论