当前位置: 首页 > ds >正文

Spark02 - SparkContext介绍

一、应用入口:SparkContext

Spark Application 程序入口为:SparkContext,任何一个应用首先需要构建 SparkContext 对象,如下两步构建:

  • 第一步、创建 SparkConf 对象
    • 设置 Spark Application 基本信息,比如应用的名称 AppName 和应用运行 Master
  • 第二步、基于 SparkConf 对象,创建 SparkContext 对象

# Import SparkConf class into program
from pyspark import SparkConf
# Import SparkContext and SparkSession classes
from pyspark import SparkContext # Spark
from pyspark.sql import SparkSession # Spark SQLif __name__=="__main__":# local[*]: run Spark in local mode with as many working processors as logical cores on your machine# If we want Spark to run locally with 'k' worker threads, we can specify as "local[k]".master = "local[*]"# The `appName` field is a name to be shown on the Spark cluster UI pageapp_name = "RDD-basics"# Setup configuration parameters for Sparkspark_conf = SparkConf().setMaster(master).setAppName(app_name)# Method 2: Getting or instantiating a SparkContextsc = SparkContext.getOrCreate(spark_conf)sc.setLogLevel('ERROR')data_list = [1, 2, 3, 3]rdd = sc.parallelize(data_list)print(rdd.collect())

二、spark实现wordCount程序的流程图

三、Spark集群角色

当spark application运行在集群上时,主要有四个部分组成,如下图所示:

1)、Master (被yarn中的 ResourceManager 代替):集群大管家,整个集群的资源管理和分配

2)、Worker (被yarn中的 NodeManager 代替):单个机器的管家,负责在单个服务器上提供运行容器,管理当前机器的资源.

3)、Driver:单个 Spark 任务的管理者,管理 Executor 的任务执行和任务分解分配,类似 YARN 的 ApplicationMaster;

4)、Executor:具体干活的进程,Spark 的工作任务 (Task) 都由 Executor 来负责执行.

【注意】:

只有干活的代码是excutor运行的,其余剩下的都是由driver运行的。

四、分布式代码执行分析

对应的流程如图:

代码从Driver开始,到Driver结束,中间是excutor分布式运行。

写的是一份代码,但是底层执行的是好多个excutor(机器)

五、Python on Spark执行原理

driver由JVM driver运行(翻译),excutor由python excutor运行。

  • Driver翻译过去
  • Excutor中转调度。
http://www.xdnf.cn/news/17538.html

相关文章:

  • 【多模态目标检测数据集】【VEDAI】航空影像中的车辆检测:小目标检测基准
  • 2025年渗透测试面试题总结-10(题目+回答)
  • C语言:构造类型
  • C++学习之STL学习:map/set
  • 【面试题】cookie和session 的区别
  • 使用GTX ip core + SDI IP core实现SDI设计
  • BeanDefinition 与 Bean 生命周期(面试高频考点)
  • 《Learning To Count Everything》论文阅读
  • 鸿蒙开发中的Tabs组件详解
  • 使用 Visual Studio 2022 编译 PortAudio 项目
  • docker基础前置
  • Microsoft Office Visio(流程图)学习笔记
  • 【华为仓颉编程语言】标识符
  • 栈和队列应用实操
  • LabVIEW核物理虚拟仪器教学
  • 【26】C#实战篇—— 多个线程函数对同一个 Excel 文件进行写操作引起的文件冲突问题,解决方法
  • Playwright C# 自动登录并上传 Excel 文件 的可运行示例
  • 十九、MySQL-DQL-基本查询
  • Python day39
  • Linux系统之lua 详解
  • 一周学会Matplotlib3 Python 数据可视化-标注 (Annotations)
  • 【线性代数】6二次型
  • Windows设置英文路径显示为中文名称的文件夹
  • Android 设置/修改系统NTP服务地址
  • Golang的本地缓存freecache
  • Nginx 功能扩展与二次开发实践
  • HUAWEI交换机命令基础
  • C++面向对象及其特性
  • AI 边缘计算网关:开启智能新时代的钥匙
  • Claude Code 的核心能力与架构解析