spark-python

前言:本帖子是看了黑马教学视频结合spark八股,记录一下spark的知识.

一.spark介绍

1.1 spark的运行模式

1.2 spark的架构角色

在讨论spark的架构角色时,首先先回顾一下yarn的架构角色.

spark架构角色:

二.standalone 运行原理

2.1standalone架构

standalone中有三类进程:

  • master
  • worker
  • historyserver

在 standalone 模式下, master进程和 worker进程是固定的。

开启一个任务,就会在master进程中开启一个对应的 Driver线程 ,然后在worker进程中开启一个或者多个 Executor线程

开启两个任务,就会在master进程中开启两个对应的 Driver线程,对应的Executor各自汇报给对应的Driver,Executor数量根据你任务情况而定。

在该图中:

  • dirver运行在master进程中,executor运行在worker进程中.
  • master会管理worker的资源情况,worker会管理executor的任务运行情况.
  • 一个任务就有一个driver带有它工作的executor,两个任务有两个dirver带有它工作的executor.
  • 当任务完成之后,dirver就会消失(体现在任务的driver端口打不开),可以通过日志查看.

2.2 standalone的集群环境安装

2.2.1 集群规划

2.2.2 spark集群部署

  • 首先安装anaconda,因为spark要在python环境下执行, 所以要在三台电脑上安装python环境,并且创建虚拟环境.
  • 配置环境变量
  • 其他安装步骤

这里安装步骤不做介绍了(因为纯看课,没有实操)

2.2.3 spark

2.3 spark程序运行层次架构

  • 4040是一个程序运行时候绑定的端口,dirver和spark的application是绑定的,一个程序绑定一个,两个程序绑定两个,在运行的时候申请的端口,程序运行完,该端口注销,有几个application,就有几个端口.
  • 8080在程序运行之后也不会停止.
  • 18080:是查看历史运行状态的端口.
    spark在应用程序执行时,大概可以分为4个层级:

application-->job-->stage-->task

当我们在执行时,一个应用程序**(application)** 可能比较大,会分配出多个子任务**(job),最少一个子任务,每个任务有不同的stage** 运行,先干什么,在干什么,那阶段又可以分成几个task.

  • 在之后rdd的时候,会再详细介绍这些.

总结:

2.4 StandAlone HA

2.4.1 StandAlone HA 运行原理

StandAlone HA是由于StandAlone 工作架构是主从架构,master只有一个,会出现单点故障,如果主节点(master)宕机的话,那么整个集群就没有办法正常工作了,StandAlone HA就是为了解决这个问题而产生的.
基于zookeeper的Standby Masters(Standby Masters with ZooKeeper)--可以用于生产环境。
ZooKeeper提供了一个Leader Election机制,利用这个机制可以保证虽然集群存在多个Master,但是只有一个是Active (活跃)的,其他的都是Standby(备份)。当Active的Master出现故障时,另外的一个Standby Master会被选举出来。

  • spark集群启动的时候会启动多个master节点,master在配置了zookeeper HA模式之下,在启动的时候会去zookeeper注册一个临时节点,谁先启动,谁先注册成功,谁就是active的master,另一个作为standby进行监听.
  • worker启动成功之后,会和zookeeper进行通讯,就会得知谁是活跃的master.
  • 然后worker和该master组件成一个可用的集群.
  • 如果活跃的master宕机了,那他的临时节点失效,然后standby的master就注册临时节点,变成了active的master.
  • 然后workers从zookeeper中获得活跃的master节点,进行正常工作.

2.4.2 基于zookeeper搭建spark的Standalone HA集群.

这里不做过多介绍,没有搭建.

2.4.3 总结

三.spark on yarn的环境搭建(很重要实际生产中用)

这一节比较重要,但是这里仍然不搭建,笔记会详细记录.

3.1 spark on yarn的本质

首先如果我们想要一个稳定生产的spark环境,那么最优的选择就是构建:StandAlone HA集群.

其次,一般企业资源比较紧缺,基本上都会有hadoop集群,yarn和spark standalone都是可以进行资源调度的,再搭建standalone就比较费资源,那就出现了spark on yarn.

对于spark on yarn,无需部署spark集群,只要找一台服务器,充当spark的客户端,即可提交任务到yarn集群中运行.(这里找一台服务器充当客户端,什么意思?standalone 模式下不是这样嘛?)

答:

相关推荐
luoganttcc35 分钟前
加快高水平科技自立自强,引领发展新质生产力 <十五五 规划节选>
大数据·人工智能·科技
TDengine (老段)1 小时前
益和热力性能优化实践:从 SQL Server 到 TDengine 时序数据库,写入快 20 秒、查询提速 5 倍
大数据·数据库·物联网·性能优化·时序数据库·tdengine·1024程序员节
秋已杰爱2 小时前
技术准备十五:Elasticsearch
大数据·elasticsearch·搜索引擎
青云交2 小时前
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用
java·大数据·智能家居·数据采集·能源消耗模式分析·节能策略制定·节能效果评估
L.EscaRC3 小时前
Kafka在Spring Boot生态中的浅析与应用
spring boot·分布式·kafka
代码哈士奇3 小时前
Nestjs+nacos+kafka搭建中后台系统-后端(持续更新中)
redis·分布式·微服务·nacos·kafka·nestjs·pgsql
B站计算机毕业设计之家3 小时前
python图像识别系统 AI多功能图像识别检测系统(11种识别功能)银行卡、植物、动物、通用票据、营业执照、身份证、车牌号、驾驶证、行驶证、车型、Logo✅
大数据·开发语言·人工智能·python·图像识别·1024程序员节·识别
数字化脑洞实验室7 小时前
如何理解不同行业AI决策系统的功能差异?
大数据·人工智能·算法
starandsea11 小时前
gitlab解决传过大文件后删除导致pack过大问题
大数据·elasticsearch·gitlab
Damon小智13 小时前
鸿蒙分布式数据服务(DDS)原理与企业同步实战
分布式·华为·harmonyos