一、spark工作流程

  1. 当一个spark应用被提交时,根据提交参数在相应的位置创建driver进程。
  2. Driver进程启动后,会初始化sparkContext对象,会找到集群master进程,对spark应用程序进行注册
  3. 当master收到spark程序的注册申请之后,会发送请求给worker,进行资源的调度和分配
  4. worker收到master的请求后,会为spark应用启动executor进程,会启动一个或多个  executor,具体启动多少个,根据配置来启动
  5. executor启动之后,会向Driver进行反注册,这样Driver就知道哪些executor为它服务了
  6. Driver会根据我们对RDD定义的操作,提交一堆的task去Executor上执行,task里面执行的就是具体的map、flatMap这些操作

二、spark的基本概念

  • DriverProgram(驱动器):运行main()方法并创建SparkContext的进程
  • ClusterManager(也叫master集群管理器) :用于在集群上申请资源的外部服务
  • workerNode(工作节点):集群上运行应用程序代码的任意节点
  • executor(执行器):在集群工作节点上为某个应用启动的工作进程,该进程负责运行计算任务,并为应用程序存储数据
  • job(作业) 一个并行计算作业,由一组任务组成,并由spark的行动(action)算子(save、collect)触发启动,每个Job会根据RDD的宽依赖关系被切分很多Stage,每个Stage中包含一组相同的Task
  • stage(阶段) 每个job会被分为多个stage,每个stage是由一组并行的task组成的,stage的划分依据就是看是否产生了shuflle(宽依赖),遇到一个shuflle操作就会划分为前后两个stage
  • task:执行器的工作单元

一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构成,一个Stage由多个没有Shuffle关系的Task组成。

三、Spark实战

读取文件中的所有内容,计算每个单词出现的次数

object WorldCountScala {def main(args: Array[String]): Unit = {//第一步 创建sparkContextval conf = new SparkConf()conf.setAppName("WorldCountScala") //设置任务名称.setMaster("local") //表示本地执行val sc = new SparkContext(conf)//第二步 加载数据val lineRDD = sc.textFile("D:\\bigdata/hello.txt")//第三步 对数据进行切割val wordRDD = lineRDD.flatMap(_.split(" "))//第四步 迭代words,把每个word转成(word,1)这种形式// val pairRDD = wordRDD.map(word=>(word, 1))val pairRDD = wordRDD.map((_, 1))// 根据key进行分组聚合val wordCountRDD = pairRDD.reduceByKey(_ + _)//将结果打印到控制台wordCountRDD.foreach(wordCount => println(wordCount._1 + "——" + wordCount._2))//停止sparkContextsc.stop()}

运行结果:

Spark 运行架构与原理相关推荐

  1. Spark详解(十一):Spark运行架构原理分析

    1. Spark 运行架构总体分析 1.1 总体介绍 Spark应用程序的运行架构基本上由三部分组成,包括SparkContext(驱动程序).ClusterManger(集群资源管理器)和Execu ...

  2. Spark入门实战系列--4.Spark运行架构

    注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1. Spark运行架构 1.1 术语定义 lApplication:Spark Applic ...

  3. 第三章 Spark运行模式及原理

    第三章 Spark运行模式及原理 目录 Spark运行模式概述 Local模式 Standalone模式 Local cluster模式 Mesos模式 YARN standalone/YARN cl ...

  4. Spark SQL架构工作原理及流程解析

    Spark SQL架构工作原理及流程解析,spark sql从shark发展而来,Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析.逻辑执行计划翻译.执行计划优化等逻辑. Sp ...

  5. Spark基本架构及原理

    目标: Spark概述 Spark基本概念 Spark四大运行模式.运行流程 spark 与 hadoop RDD运行流程 Spark三大类算子 Spark Streaming Spark概述: Ap ...

  6. spark-submit提交参数说明以及与yarn-site.xml中参数的相互约束关系+spark运行架构图解(持续更新中)

    因为大型公司都有使用spark/hadoop的官方配置,不太需要个人工程师关心, 这个博客用来给予自己搭建或者小公司使用集群时使用 先复习下yarn-site.xml中几个参数的含义[3]: 配置文件 ...

  7. 4-spark学习笔记-spark运行模式与原理

  8. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  9. Spark生态系统和运行架构

    Spark是一个可应用于大规模数据处理的快速.通用引擎,spark提供了内存计算和基于DAG的任务调度机制.Spark最大的特点就是将计算数据.中间结果都存储在内存中,因此更适合于迭代运算. 1.Sp ...

最新文章

  1. bzoj 1040: [ZJOI2008]骑士 树形dp
  2. 比特币现金驱动的社交媒体平台备忘录继续蓬勃发展
  3. 下载android的linux内核的方法
  4. getElementById取得文本框中的值
  5. SpringMVC框架介绍
  6. [转]颠覆式前端UI开发框架:React
  7. 判别测试字段怎么算它的位数_心理测试 | 成人依恋量表-亲密关系经历量表ECR...
  8. Java程序编译的几个方法(编辑器Notepad++)
  9. Finally语句块的执行
  10. js将base64做UrlEncode转码
  11. mysql中数据定义语言_SQL数据定义语言(DDL)
  12. (草稿)如何判断一名UiPath开发人员是否合格?
  13. 统计学习导论_统计学习导论 | 读书笔记11 | 多项式回归和阶梯函数
  14. HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
  15. java多态是怎样产生的,java 多态产生的疑问
  16. 网页嵌入谷歌翻译js插件
  17. JavaScript_牛客网_编程初学者入门训练(21-30题解)
  18. 8086的两种工作模式_8086系统中最小模式与最大模式两种工作方式的主要区别是什么?...
  19. 微信小程序实现加载进度条
  20. 共模电感(扼流圈) 差模电感(扼流圈)

热门文章

  1. PostgreSQL导不了入数据
  2. HashMap的工作原理和底层实现(二)红黑树的左旋、右旋
  3. 物业管理信息系统的研究与实现
  4. unicloud开发微商管理小程序-商品私域推广
  5. 高斯课堂 计算机网络(下)
  6. 开手机私服,服务器配置参考事项
  7. 杰信物流项目总结(八)
  8. 虚拟机设置时区、时间
  9. 国标BAL 13-3铝白铜棒 BAL 13-3性能
  10. Google Play下载超千万!这款AI人脸风格、换脸APP