版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1Spark分布式集群搭建课程导览01环境准备虚拟机环境搭建与Hadoop分布式集群部署02Spark部署Standalone模式与onYARN模式集群部署03验证与原理PySpark单词计数验证与Spark理论知识深化环境准备01基本信息与集群规划工单编号1.1
虚拟机环境搭建与配置建议学时2
学时环境要求VMwareWorkstation+支持虚拟化的计算机集群规划一主二从,共
3
台虚拟机序号主机名IP地址说明1master主节点2slave01从节点13slave020从节点2实施流程1新建虚拟机2修改网络配置3关闭防火墙4配置主机名及域名解析5免密登录配置6搭建集群7Xshell连接工单1.1目标明确知识、技能与素养三维学习目标知识目标了解集群概念,掌握免密登录配置集群概念免密登录配置技能目标掌握常用Linux命令,能独立完成虚拟机安装、网络配置、防火墙关闭、免密登录、Xshell连接等操作常用Linux命令虚拟机安装网络配置防火墙关闭免密登录Xshell连接素养目标培养责任感、担当意识与解决问题的能力责任感担当意识解决问题的能力✦环境参数平台VMwareWorkstation系统CentOS7节点名master▶安装流程1打开VMwareWorkstation,单击"创建新的虚拟机"2在"新建虚拟机向导"中,单击"下一步"3选中"安装程序光盘映像文件(iso)",选择CentOS安装包4设置虚拟机名称(master)与存储位置5最大磁盘大小设为建议值,选中"将虚拟磁盘拆分成多个文件"6勾选"创建后开启此虚拟机",单击"完成"7选择"InstallCentOS7",按Enter键开始安装8单击"INSTALLATIONDESTINATION"设置安装目标,连续"Done"后单击"BeginInstallation"9双击"ROOTPASSWORD"设置root密码✓提示:root密码建议不要过于复杂新建虚拟机修改网络配置目标为master虚拟机配置静态IP,确保网络连通01查看网段启动master虚拟机,以root用户登录02修改配置文件运行命令打开网络配置文件03添加网络配置根据实际网段添加IP、网关和DNS04重启网络服务保存退出后执行05测试连通性使用ping命令测试网络连通性,观察能否收到回复五步流程总览步骤一查看网段步骤二修改配置文件步骤三添加网络配置步骤四重启网络服务步骤五测试连通性依次完成防火墙关闭、主机名修改与域名解析规则配置,确保节点间通信顺畅1关闭防火墙1运行
systemctlstopfirewalld
关闭防火墙2运行
systemctldisablefirewalld
禁用开机自启3运行
systemctlstatusfirewalld
验证关闭状态2配置主机名1运行
vi/etc/hostname
编辑配置文件2删除原有内容,输入
master,保存退出3配置域名解析规则运行
vi/etc/hosts
编辑hosts文件,在末尾添加:IP主机名masterslave010slave02保存退出后,重启虚拟机使配置生效关闭防火墙与配置主机名1SSH免密登录配置3步完成1运行
ssh-keygen-trsa
生成RSA密钥对2运行
ssh-copy-idmaster
将公钥复制到master节点3运行
sshmaster
验证免密登录是否成功2克隆虚拟机搭建集群一主二从1确保master节点已关闭,右击master选择
"管理"→"克隆"2克隆源界面选中
"虚拟机中的当前状态";克隆类型选择
"创建完整克隆"(重要!)3设置虚拟机名称为
slave01,与master存放在同一目录;等待克隆完成后,按同样步骤克隆
slave02!分别修改
slave01、slave02
的静态IP地址(参照集群规划)并修改主机名,修改后需
重启虚拟机
使配置生效免密登录与集群搭建完成SSH免密登录配置,并通过克隆方式搭建一主二从集群素养课堂Linux内核是开源的,我国企业、学者、工程师积极参与Linux社区,通过在线讨论、协作开发共同进步。安装CentOS是一项复杂工作,要培养责任感和担当意识,对自己的行为负责,也对团队和项目的成功负责。Xshell连接与vim安装1配置会话
启动Xshell,选择
"文件"→"新建",配置名称、协议、主机、端口号等参数2批量连接
在会话列表中双击新建的会话,分别连接
3台
虚拟机3安装vim
在已连接的会话中运行
yuminstallvim
安装vim编辑器工单小结完成
3台CentOS虚拟机的创建与配置验证要点:虚拟机能否与物理主机相互连通、能否访问互联网、虚拟机之间能否成功免密登录如因内存不足无法正常启动,可调整虚拟机内存为
2GB建议创建快照或复制虚拟机文件做好备份Xshell连接与工单小结基本信息与配置文件工单概述本工单通过安装JDK、安装和配置Hadoop分布式集群等操作,构建Hadoop分布式集群,为后续任务提供平台基础工单编号1.2建议学时2
学时工单名称Hadoop分布式集群部署环境要求操作系统、网络配置完毕的
3
台虚拟机Hadoop配置文件集群部署所需配置文件及其功能配置文件功能描述hadoop-env.sh配置Hadoop运行所需的环境变量mapred-env.sh配置MapReduce运行所需的环境变量core-site.xmlHadoop核心全局配置文件,可被其他配置文件引用hdfs-site.xmlHDFS配置文件,引用core-site.xml配置文件mapred-site.xmlMapReduce配置文件,引用core-site.xml配置文件yarn-site.xmlYARN配置文件,引用core-site.xml配置文件workers配置工作节点明确本工单的三维学习目标与关键任务步骤三维学习目标知识目标掌握Hadoop分布式集群的部署步骤技能目标掌握Hadoop的安装与使用素养目标培养积极探索、勇于创新的科学素养;解决问题的能力任务关键步骤1安装JDK2安装和配置Hadoop分布式集群3格式化
文件系统4启动Hadoop集群并验证5WebUI
验证Hadoop集群工单1.2目标安装JDK上传→解压→配置→生效→远程复制master节点Xftp上传+本地解压配置1上传Xftp连接master节点,拖曳jdk-8u112-linux-x64.tar.gz至/opt目录2解压tar-zxf./jdk-8u112-linux-x64.tar.gz3配置vim/etc/profile添加环境变量exportJAVA_HOME=/opt/jdk1.8.0_112exportPATH=$PATH:$JAVA_HOME/bin4生效source/etc/profileslave01/slave02节点scp远程复制远程复制至slave01、slave02分发JDK目录与配置文件masterslave01slave02$scp-r/opt/jdk1.8.0_112root@slave01:/opt$scp-r/opt/jdk1.8.0_112root@slave02:/opt$scp/etc/profileroot@slave01:/etc$scp/etc/profileroot@slave02:/etc安装和配置Hadoop1上传并解压安装包使用Xftp将Hadoop安装包上传至master节点的
/opt
目录,并解压缩:cd/opttar-zxvfhadoop-3.2.4.tar.gz2配置环境变量运行
vi/etc/profile
打开配置文件,在文件末尾添加Hadoop环境变量:exportHADOOP_HOME=/opt/hadoop-3.2.4exportHADOOP_MAPRED_HOME=/opt/hadoop-3.2.4exportHADOOP_YARN_HOME=/opt/hadoop-3.2.4exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexportHDFS_NAMENODE_USER=rootexportHDFS_DATANODE_USER=rootexportHDFS_SECONDARYNAMENODE_USER=rootexportYARN_RESOURCEMANAGER_USER=rootexportYARN_NODEMANAGER_USER=root3使配置生效运行以下命令,让环境变量立即生效:source/etc/profile进入配置目录cd/opt/hadoop-3.2.4/etc/hadoopcore-site.xml配置HDFS默认文件系统与临时目录<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-3.2.4/data/tmp</value></property></configuration>hadoop-env.sh配置Java环境exportJAVA_HOME=/opt/jdk1.8.0_112mapred-env.sh配置Java环境exportJAVA_HOME=/opt/jdk1.8.0_112hdfs-site.xml配置副本数
dfs.replication
,值为
2配置Hadoop集群文件配置集群文件与远程复制mapred-site.xml配置MapReduce运行框架为YARN<configuration><property><name></name><value>yarn</value></property></configuration>yarn-site.xml配置ResourceManager主机与辅助服务<configuration><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>workers配置工作节点slave01slave02远程复制远程复制Hadoop至slave01和slave02节点scp-r/opt/hadoop-3.2.4root@slave01:/optscp-r/opt/hadoop-3.2.4root@slave02:/opt仅首次部署格式化文件系统运行hdfsnamenode-format格式化文件系统!注意:格式化会删除HDFS数据,每次修改
hdfs-site.xml
后必须重新格式化启动命令启动集群在master节点运行start-all.sh启动集群进程验证各节点运行jps预期进程节点预期进程masterResourceManagerNameNodeSecondaryNameNodeslave01DataNodeNodeManagerslave02DataNodeNodeManagerWebUI验证管理页面与关闭访问
:9870/
查看Hadoop管理页面关闭集群前务必运行stop-all.sh启动集群与验证工单小结2完成
2
项核心操作实现Hadoop分布式集群部署环境配置安装JDK,完成基础运行环境准备集群部署安装并配置Hadoop集群,执行
start-all.sh
启动集群素养课堂:曹冲称象与"分而治之"🐘大象→🪨石块分次称量→⚖️分而治之曹冲以石块替代大象分次称量,正是"分而治之"思想的经典体现。这与大数据处理的核心逻辑高度契合——通过"拆分-处理-聚合"将复杂任务化解为可执行的单元。HDFS分布式存储MapReduce分布式计算拆分→处理→聚合工单1.2小结与素养课堂Spark部署02Spark集群部署——Standalone模式工单编号
1.3建议学时
2
学时3环境要求:安装好操作系统、配置好网络、正常运行的3台虚拟机学习目标LEARNINGOBJECTIVES知识目标掌握Standalone模式的基本架构掌握Spark的部署流程技能目标能够安装Spark、配置Spark环境变量能够以Standalone模式提交案例素养目标培养积极探索、勇于创新的科学素养培养精益求精的大国工匠精神在master节点解压Spark压缩包,配置
spark-env.sh、profile、workers
文件,复制profile及spark目录到从节点,以Standalone模式运行Spark计算Pi案例验证部署。“四步完成Spark环境部署1下载兼容版本访问Spark官网,选择与Hadoop、Scala版本匹配的发行版2上传至master节点通过Xftp上传至
/opt
目录3解压并配置环境变量#解压tar-zxfspark-3.2.4-bin-hadoop3.2-scala2.13.tgz#重命名mvspark-3.2.4-bin-hadoop3.2-scala2.13spark#编辑/etc/profile,添加:exportSPARK_HOME=/opt/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin4生效配置并验证source/etc/profilerun-exampleSparkPi输出Spark运行日志及计算结果即表示配置成功下载解压与配置环境配置Spark集群spark-env.sh核心配置$SPARK_HOME/conf/cd$SPARK_HOME/conf/cp./spark-env.sh.template./spark-env.shvispark-env.sh配置模块关键参数PART1底层依赖JAVA_HOMEHADOOP_HOMEHADOOP_CONF_DIRYARN_CONF_DIRPART2主节点SPARK_MASTER_HOST=masterSPARK_MASTER_PORT=7077PART3资源限制SPARK_WORKER_CORES=1SPARK_WORKER_MEMORY=1GSPARK_EXECUTOR_CORES=1SPARK_EXECUTOR_MEMORY=1Gworkers从节点配置$SPARK_HOME/conf/cd$SPARK_HOME/conf/cpworkers.templateworkersviworkers添加节点:●slave01●slave02启动集群与进程验证231远程复制配置文件至从节点scp/etc/profileroot@slave01:/etcscp/etc/profileroot@slave02:/etcscp-r/opt/sparkroot@slave01:/optscp-r/opt/sparkroot@slave02:/opt远程复制目录需加参数
-r;复制完成后需在从节点运行
source/etc/profile
更新环境变量2启动Spark集群start-dfs.sh
#启动HDFSstart-master.sh
#启动Spark的主节点start-workers.sh
#启动Spark的工作节点启动工作节点的正确命令是
start-workers.sh,不是
start-worker.sh3运行jps验证进程节点预期进程masterMasterslave01Workerslave02Worker通过WebUI页面验证集群状态,并提交SparkPi案例验证集群计算能力案例验证—提交SparkPi作业$spark-submit--classorg.apache.spark.examples.SparkPi\--masterspark://master:7077\--num-executors2--driver-memory1g\--executor-memory1g--executor-cores1\/opt/spark/examples/jars/spark-examples_2.13-3.2.4.jar10蒙特卡洛随机算法估算圆周率,结果接近
3.1416
即验证通过WebUI验证:8080浏览器访问该地址,查看Spark集群状态和管理页面工单小结配置步骤关键操作配置文件修改
spark-env.sh、workers启动服务执行
start-master.sh
和
start-workers.sh状态查看浏览器访问
:8080WebUI验证与案例测试素养课堂:我国数学家刘徽提出的"割圆术"首次使用极限思想计算圆周率祖冲之圆周率成就7位小数π值精确度3.1415926~3.1415927π值介于两者之间领先世界
1000多年22/7约率355/113密率工匠精神映射精益求精部署Spark集群时追求最优配置参数调优找到适合物理机器性能的参数组合,有效且高效完成任务工单1.3素养课堂工单1.4:SparkonYARN模式部署编号工单编号1.4—Spark集群部署(onYARN模式)学时建议学时2
学时环境环境要求已部署好的Standalone模式Spark集群工单概述本工单将修改Standalone模式Spark集群的配置,实现onYARN模式部署。首先修改
/etc/profile
和Hadoop的
yarn-site.xml
,并将它们远程复制到从节点,然后以onYARN模式运行SparkPi案例验证部署。学习目标知识目标掌握onYARN模式的配置技能目标能够修改系统环境配置技能目标能够启动Spark集群素养目标培养精益求精的大国工匠精神添加Hadoop环境变量#在/etc/profile中添加以下内容export
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport
HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoopexport
YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop添加环境变量master节点编辑/etc/profile→source/etc/profile执行该命令,使配置生效关闭内存检查,避免onYARN模式作业被强制终止,并将配置分发到各从节点1修改yarn-site.xml关闭内存检查,避免onYARN模式作业被强制终止:<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>2分发配置将配置文件复制到从节点,并使配置生效:将
/etc/profile
和
yarn-site.xml
复制到slave01slave02各从节点执行
source/etc/profile
生效修改yarn-site.xml与分发配置在Master节点启动Hadoop与Spark集群,并通过浏览器验证集群状态启动集群1在
master
节点运行
start-all.sh
启动Hadoop集群2运行
start-master.sh
启动Spark主节点,start-workers.sh
启动工作节点验证:jps应显示以下进程Master节点SecondaryNameNode·ResourceManager从节点DataNode·NodeManagerWebUI验证浏览器访问以下地址,查看
Spark集群状态页面:8080SparkMasterWebUI:查看Spark集群状态页面启动集群与WebUI验证onYARN模式案例验证案例验证:提交SparkPi作业onYARN模式·集群验证spark-submit--classorg.apache.spark.examples.SparkPi\--masterspark://master:7077\--num-executors2--driver-memory1g\--executor-memory1g--executor-cores1\examples/jars/spark-examples_2.13-3.2.4.jar10工单小结修改
yarn-site.xml
等配置文件,实现onYARN模式Spark集群搭建,提交作业至Spark集群完成验证工单1.4素养课堂工匠精神·精益求精实验环境搭建是系统性复杂工作,每一个步骤都需认真谨慎执行任意步骤出错,都会影响后续实验开展发扬工匠精神,保证细致无误,不断精益求精认真谨慎细致无误精益求精大国工匠·徐立平徐立平从事固体燃料发动机火药整形工作
30余年。固体燃料发动机是战略战术导弹的「心脏」,火药整形在全世界都是难题,无法完全用机器代替。0.5
mm允许最大药面误差,行业严苛标准≤0.2
mm徐立平雕刻精度,超越标准的极致追求验证与原理03基本信息与工单目标工单号1.5|PySpark单词计数学时2
学时环境部署好的Spark集群学习任务概述编写
Python单词计数程序,在
Spark集群上运行:1编译安装Python环境2编写程序3提交Spark执行4获取结果学习目标知识目标掌握PySpark的安装方法技能目标能够搭建PySpark运行环境技能目标能够完成单词计数程序的编写素养目标培养积极探索、勇于创新的科学素养素养目标培养遵循代码规范编写程序的能力编译安装Python3.7注意不能直接通过
yuminstallpython3
安装Python。Spark3需要
Python3.7及以上版本,只能通过编译源码方式安装3远程复制至从节点将master节点中以下三个目录复制到
slave01
和
slave02:源目录目标节点/usr/local/binslave01,slave02/usr/local/libslave01,slave02/usr/local/includeslave01,slave021安装依赖与下载源码#安装编译所需依赖yum-yinstallgcczlibzlib-developensslopenssl-devel\libffi-develbzip2#下载并解压Python-3.7.10源码包wget/ftp/python/3.7.10/Python-3.7.10.tgztar-zxvfPython-3.7.10.tgzyum-yinstallreadline-devel.*2编译与安装#进入源码目录cd/opt/Python-3.7.10#配置安装路径./configure--prefix=/usr/local#编译并安装make&&makeinstall配置PySpark环境1配置环境变量在master节点的
/etc/profile
中添加:exportPYSPARK_PYTHON=/usr/local/bin/python3exportPYSPARK_DRIVER_PYTHON=/usr/local/bin/python3exportPYTHONPATH=$SPARK_HOME/python/lib/py4j--src.zip:\$SPARK_HOME/python:$PYTHONPATH运行
source/etc/profile
更新配置2启动PySpark交互界面pyspark--masterspark://master:7077▸PySpark使用Python进行交互,使用
quit()
命令退出交互界面3准备测试数据在
/opt/example
目录下创建
test1.txt
文件,内容如下:IloveChinaIlovemyfamilyIlovemycollege上传数据至HDFS1步骤1:上传数据至HDFS1hdfsdfs-mkdir-p/user/zjaf/data/test2hdfsdfs-put/opt/example/test1.txt/user/zjaf/data/test3hdfsdfs-ls/user/zjaf/data/test步骤2wordcount.py程序代码wordcount.pyfrompysparkimportSparkConf,SparkContextimportosconf=SparkConf().setMaster("spark://master:7077")\.setAppName("WordCount")sc=SparkContext(conf=conf)sc.setLogLevel("WARN")inputFile="/user/zjaf/data/test/test1.txt"dataRDD=sc.textFile(inputFile)wc=(dataRDD.flatMap(lambdaline:line.split("")).map(lambdax:(x,1)).reduceByKey(lambdaa,b:a+b))wc.foreach(print)savePath="/user/zjaf/res/test"cmdPath="/opt/hadoop-3.2.4/bin/hdfs"flag=os.popen(cmdPath+"dfs-test-e"+\savePath+";echo$?").readlines()ifflag==['0\n']:
print(os.popen(cmdPath+"dfs-rm-r"+\savePath).readlines())wc.saveAsTextFile(savePath)核心逻辑解析初始化SparkContext通过
SparkConf
设置Master为
spark://master:7077
,AppName为
WordCount
,并创建
SparkContext
,日志级别设为
WARN
。读取文本数据使用
sc.textFile()
读取HDFS上的输入文件
/user/zjaf/data/test/test1.txt
,生成
dataRDD
。单词计数转换链式调用
flatMap
(按空格拆分行)→
map
(映射为(词,1)键值对)→
reduceByKey
(按键聚合求和)。输出结果先以
wc.foreach(print)
打印结果;再检测
savePath
是否存在,若存在(
flag==['0\n']
)则执行
hdfsdfs-rm-r
删除,最后
saveAsTextFile
写出。提交作业与查看结果将单词计数程序提交至Spark集群运行,并查看HDFS输出结果注意:每个JVM只能创建一个SparkContext。如需创建新的SparkContext,需先调用
stop()
方法停止现有实例提交作业至Spark集群spark-submit--masterspark://master:7077\--deploy-modeclient--executor-memory1g\--total-executor-cores2wordcount.py查看输出结果hdfsdfs-ls
/user/zjaf/res/testhdfsdfs-getmerge
/user/zjaf/res/test
/tmp/wordcount_result.txtcat
/tmp/wordcount_result.txt工单小结1编译和安装Python2配置PySpark环境3编写并运行单词计数程序“创新是引领发展的第一动力,抓创新就是抓发展,谋创新就是谋未来尊重他人原创尊重文字、图像、音频、视频等各类媒介资源自觉抵制假冒伪劣商品拒绝抄袭、剽窃、盗用他人劳动成果保护自身权益学会应用知识产权相关法律法规依法维护自身知识产权不受侵害知识产权法是我国迈向创新型社会的坚实法律基础工单1.5素养课堂Spark概述与主要特点(上)Spark概述2009年诞生于加州大学伯克利分校AMP实验室,当前主流大数据处理框架发展历程DAG有向无环图基于DAG计算模型,支持Scala/Java/Python/R,规模从单节点扩展至数千节点主要特点高性能内存计算大幅提升处理速度,突破HadoopMapReduce迭代计算瓶颈可扩展性任务分发至集群多节点并行执行,支撑大规模分布式场景容错性记录数据转换历史与依赖关系,节点故障自动恢复确保结果正确2010年3月正式开源2011年推出SparkStreaming2014年成为Apache顶级项目Spark主要特点(下)与优缺点04/Spark生态多任务、多语言、易用性与多数据源支持,以及优缺点的对比分析主要特点(下)01多任务支持批处理、交互式查询、流式处理、机器学习等,提供丰富API02多语言支持Java、Scala、Python、R,开发者可按习惯选择03易于使用交互式Shell和图形化界面,调用封装API即可04多数据源Hadoop、Hive、Cassandra、HBase、AmazonS3等Spark优缺点优势局限高效处理大规模数据集,良好的可扩展性和容错性不能完全替代Hadoop中间数据缓存内存,提升计算效率更适合多次迭代的计算任务丰富的机器学习和图处理库对硬件要求更高,特别是内存与CPUVSSpark生态系统六大场景对照·五大核心组件应用场景时间特性传统替代方案Spark组件批处理计算分钟级至小时级MapReduce/HiveSparkCore交互式分析亚秒级至分钟级Impala/PrestoSparkSQL微批流处理秒级至分钟级Storm/FlinkSparkStreaming实时流处理毫秒级至秒级Flink/RSocketStructuredStreaming机器学习分钟级至小时级Mahout/SklearnMLlib图计算分钟级至天级Giraph/Neo4jGraphXSparkCore核心引擎,负责任务调度与协调,基于内存计算,引入
RDD
概念SparkSQL操作结构化数据,提供
SQLAPI、DataFrame和DatasetAPISparkStreaming从Kafka、Flume等获取实时流数据,将流式计算分解为
微批处理作业MLlib机器学习库,提供分类、回归、聚类、协同过滤等
算法实现GraphX图计算组件,用于
社交网络分析、网页排序等场景Spark主要用于替代Hadoop中的MapReduce计算模型,数据存储仍可使用HDFS,中间结果可存放在内存中对比维度HadoopSpark架构定位分布式计算框架(含HDFS+YARN+MapReduce)分布式计算引擎(依赖外部存储和资源调度)计算范式严格Map→Shuffle→Reduce阶段基于RDD/DAG的弹性流水线内存管理无内存计算能力,所有中间结果落盘支持内存缓存(persist()级别:MEMORY_ONLY/DISK_ONLY等)任务调度以进程为单位(每个Task独立JVM)以线程为单位(单个Executor内多Task共享JVM)延迟对比任务启动延迟高(秒级)任务延迟低(亚秒级)成本争议点磁盘成本低但CPU利用率低内存需求高但资源利用率高API演进仅Map/Reduce多语言API(Scala/Java/Python/R)+高阶算子(join/cogroup等)流处理能力无原生支持(需Storm等补充)内置微批(SparkStreaming)和准实时(StructuredStreaming)Spark与Hadoop对比遵循以下
9
个关键步骤,分为三大阶段Ⅰ环境构建与任务提交1环境准备安装配置Spark集群或单机版,搭建编程语言环境2构建应用编写Spark程序定义处理逻辑;Scala/Java需打包为
.jar3提交任务使用
spark-submit
提交,指定入口类、依赖包及集群管理器Ⅱ数据读取与处理4读取数据通过API读取HDFS、本地文件、数据库等数据源5数据处理Transformation+Action,使用RDD/DataFrame/DatasetAPI;map()/filter()/reduce()
转换,collect()/count()
触发计算6中间优化缓存数据加速后续处理,利用分布式能力并行计算Ⅲ结果输出与运维7结果输出保存至指定存储系统,或输出到控制台/文件8监控调优SparkWebUI查看任务执行,调整配置优化性能9应用停止处理完成并输出结果后,停止Spark应用程序使用Spark进行大数据处理1DAG定义有向无环图由顶点和边组成:顶点代表数据或操作,边代表依赖关系,具有方向性且不包含环2Lineage在Spark中,DAG是核心概念,用于对RDD的关系进行建模,这种关系称为
lineage3DAGSchedulerDAG在Spark中的实现为
DAGScheduler,负责根据RDD的依赖关系(主要为宽依赖)划分计算阶段4宽依赖子RDD的每个分区都依赖于父RDD的多个分区,通常导致数据的
shuffle操作,因此宽依赖成为划分阶段的边界DAGScheduler核心概念概念解释Job(作业)调用RDD的一个动作(如count())就会触发一个作业,Spark中实现为ActiveJobStage(阶段)DAG在发生shuffle操作处被切分,切分后每一部分为一个阶段,分为ShuffleMapStage和ResultStageTask(任务)最终被发送到Executor执行的任务,分为ShuffleMapTask和ResultTaskDAG概述DAG执行全流程从RDD创建到Worker节点执行的4个环节1RDD对象创建·转换通过
join()、groupBy()、filter()
等算子创建并转换RDD,SparkContext自动分析依赖关系构建DAG012DAGScheduler划分Stage以"宽依赖"为边界,将DAG反向解析划分为多个
Stage,每个Stage内含多个可并行
Task023TaskScheduler任务分发通过
ClusterManager
将各阶段Task分发至集群
Worker节点034Worker节点执行·存储Executor
执行具体任务,BlockManager
管理数据块的存储与读写0401驱动程序(Driver)整个Spark应用程序的"大脑",负责应用程序的执行和协调解析应用程序,转换为执行计划,与集群管理器通信获取资源并监控执行状态SparkContext主要负责:获取执行进程、发送应用程序、分发任务02集群管理器(ClusterManager)管理整个Spark集群的资源分配和调度分配计算资源给驱动程序和Executor,监控集群中的节点和资源使用情况支持多种类型:HadoopYARNApacheMesosStandaloneScheduler03工作节点(WorkerNode)即从节点,在集群中运行应用程序的代码04执行进程(Executor)负责执行驱动程序分配的任务每个执行进程持有为应用程序保留的、所有任务所需的资源数据集可能已计算并缓存在内存或磁盘中,也可能尚未计算,需调用RDD的compute()计算Spark运行架构由
集群管理器、工作节点、任务控制节点
和
执行进程
四大核心组件构成Spark基本运行流程驱动程序、Executor和集群管理器协同工作,确保任务正确执行与资源有效利用1环境初始化与资源申请初始化SparkContext,向集群管理器申请Executor等资源SparkContext2构建DAG根据RDD依赖关系构建有向无环图RDD依赖关系3DAG切割与阶段划分DAGScheduler按宽/窄依赖切割DAG,宽依赖触发新的ShuffleMapStageShuffleMapStage4任务提交与调度DAGScheduler提交阶段给TaskScheduler,TaskScheduler将TaskSet分发给ExecutorTaskSet分发5任务执行Executor以多线程方式执行任务,完成后返回结果多线程执行6结果反馈与写入TaskScheduler反馈结果至DAGScheduler,最终写入数据并释放资源写入与释放运行模式运行类型核心架构资源管理方适用场景特点Local本地模式单进程Spark自身开发测试支持单线程(local)和多线程(local[N]);无网络通信;无容错机制Standalone集群模式Master/SlaveSpark独立调度器中小规模生产环境内置资源调度;需要单独部署Spark集群;轻量级Local模式本地模式·单进程单计算机运行,无需其他节点资源,适用于
教学、调试、演示Master设置方式:local—单线程执行local[K]—指定
K
个线程,如
local[4]local[*]—按CPU核心数自动设置线程上限Standalone模式集群模式·Master/SlaveMaster+Worker
架构,Master统一管理所有Worker,以
Slot
作为资源分配单位工作流程:Master创建RpcEnv→创建Endpoint→Worker创建RpcEnv和Endpoint→Worker连接Master→注册信息(主机名、端口、CPU核心数、内存)→Master存入内存Table→回复注册成功→Worker周期性心跳Master创建RpcEnv→创建Endpoint→Worker创建RpcEnv和Endpoint→Worker连接Master→注册信息(主机名、端口、CPU核心数、内存)→Master存入内存Table→回复注册成功→Worker周期性心跳Spark运行模式(上)OnYARN集群模式企业级主流核心架构ResourceManager/NodeManager资源管理方YARN适用场景企业级生产环境特点与Hadoop生态集成;支持动态资源分配;良好的资源隔离与Hadoop统一部署,资源调度依赖
YARN,存储依赖
HDFS;配置分三部分:底层依赖(Java/Hadoop)、主配置(master节点IP/端口)、资源配置(WorkerCPU/内存、Executor分配)OnMesos集群模式核心架构Master/Agent资源管理方Mesos适用场景混合负载环境特点细粒度资源分配;支持Docker容器;适合长时服务Apache开源分布式资源管理框架,被称为"分布式系统的内核",国内使用较少OnCloud集群模式核心架构云服务架构资源管理方云平台调度器适用场景云上环境特点弹性伸缩;集成云存储服务;按需付费便捷利用阿里云、华为云等云计算平台,弹性伸缩、按需付费Spark运行模式(下)三种扩展模式,YARN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026消防安全知识竞赛试题库
- 2026年焊接技术与工艺操作考核习题
- 2026年四川省部编版计算机三级网络技术模拟试题
- 2026年部编版五年级英语下册单词记忆专项训练
- 2026年浙江省北师大版高三英语人教版选修五第三章听力专项训练
- DB13-T 6319.2-2026 工程建设项目“多测合一”技术规程 第2部分:立项用地阶段测绘
- 2025年黄冈市蕲春县李时珍中医药职业技术学校招聘教师考试试卷真题
- 淘宝异地客服考试试题及答案
- 2026年中小学科学实验操作考试及答案
- 智能家居产品用户体验设计与评估试题
- 边坡治理工程(抗滑桩、锚杆、锚索、挡板、冠梁)施工方案
- 竹木厂安全生产规章制度
- 中国高危人群乙型肝炎病毒再激活防治指南(2026年版)
- 痴呆护理伦理与照护者压力管理
- 智能电表采购合同范本
- 雨课堂学堂云在线《实yong绳结技术(大连海大) 》单元测试考核答案
- 项目监理工作用设备配置方案
- (正式版)DB65∕T 3347-2011 《杨十斑吉丁虫无公害防治技术规程》
- 儿科学惊厥课件
- T/CCASC 6008-2023氯碱行业聚氯乙烯树脂碳排放核算标准
- 成本预算绩效分析实施案例
评论
0/150
提交评论