5.2 Spark运行架构及流程检测

Posted Agoni_u

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.2 Spark运行架构及流程检测相关的知识,希望对你有一定的参考价值。

1、以下层级关系正确的是?A

        A、Job->Stage->Task
        B、Stage->Task->Job
        C、Task->Job->Stage
        D、Job->Task->Stage

2、以下哪项可以反映RDD之间的依赖关系?B

        A、Driver
        B、DAG
        C、Stage
        D、Cluster Manager

3、Stage的task数量由什么决定?A

        A、Partition
        B、Job
        C、Stage
        D、TaskScheduler

  •  相关知识

Spark运行架构

基本概念

  • Application:用户编写的Spark应用程序,包含一个Driver和多个Executor

  • DriverSpark中的Driver即运行上述Applicationmain函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中有SparkContext负责与 ClusterManager通信,进行资源申请、任务的分配和监控等,当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。

  • Executor:是运行在工作节点WorkerNode的一个进程,负责运行 Task

  • RDD:弹性分布式数据集,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。

  • DAG:有向无环图,反映RDD之间的依赖关系。

  • Task:运行在Executor上的工作单元。

  • Job:一个Job包含多个RDD及作用于相应RDD上的各种操作。

  • Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表一组关联的,相互之间没有Shuffle依赖关系的任务组成的任务集。

  • Cluster Manager:指的是在集群上获取资源的外部服务。目前有三种类型:

  1. StandalonSpark原生的资源管理,由Master负责资源的分配;
  2. Apache Mesos:与Hadoop MR兼容性良好的一种资源调度框架;
  3. Hadoop Yarn:主要是指Yarn中的ResourceManager

Spark运行流程:

  1. 构建Spark Application的运行环境,启动SparkContext
  2. SparkContext向资源管理器(可以是StandaloneMesosYarn)申请运行Executor资源;
  3. ExecutorSparkContext申请Task
  4. SparkContext构建DAG图,将DAG图分解成Stage 、并将 Stage封装成Taskset发送给Task Scheduler,最后由Task SchedulerTask发送给Executor运行;
  5. TaskExecutor上运行,运行完释放所有资源。

Python 网络爬虫程序架构及运行流程

1 前言

Python开发网络爬虫获取网页数据的基本流程为:

发起请求

通过URL向服务器发起request请求,请求可以包含额外的header信息。

获取响应内容

服务器正常响应,将会收到一个response,即为所请求的网页内容,或许包含HTML,Json字符串或者二进制的数据(视频、图片)等。

解析内容

如果是HTML代码,则可以使用网页解析器进行解析,如果是Json数据,则可以转换成Json对象进行解析,如果是二进制的数据,则可以保存到文件做进一步处理。

保存数据

可以保存到本地文件,也可以保存到数据库(MySQL,Redis,MongoDB等)。

2 爬虫程序架构及运行流程

网络爬虫程序框架主要包括以下五大模块:

  • 爬虫调度器
  • URL管理器
  • HTML下载器
  • HTML解析器
  • 数据存储器

五大模块功能如下所示:

  • 爬虫调度器:主要负责统筹其它四个模块的协调工作。
  • URL管理器:负责管理URL链接,维护已经爬取的URL集合和未爬取的URL集合,提供获取新URL链接的接口。
  • HTML下载器:用于从URL管理器中获取未爬取的URL链接并下载HTML网页。
  • HTML解析器:用于从HTML下载器中获取已经下载的HTML网页,并从中解析出新的URL链接交给URL管理器,解析出有效数据交给数据存储器。
  • 数据存储器:用于将HTML解析器解析出来的数据通过文件或者数据库的形式存储起来。

网络爬虫程序框架的动态运行流程如下所示:

3 小结

本文简要介绍了Python开发网络爬虫的程序框架,将网络爬虫运行流程按照具体功能划分为不同模块,以便各司其职、协同运作。搭建好网络爬虫框架后,能够有效地提高我们开发网络爬虫项目的效率,避免一些重复造车轮的工作。

以上是关于5.2 Spark运行架构及流程检测的主要内容,如果未能解决你的问题,请参考以下文章

Spark基础学习笔记03:Spark运行架构及原理

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

02 Spark架构与运行流程

02 Spark架构与运行流程

02 Spark架构与运行流程

SparkSpark 的运行环境运行架构提交流程