Spark Master 和 Worker 项目需求 | 学习笔记

简介: 快速学习 Spark Master 和 Worker 项目需求

开发者学堂课程【Scala 核心编程 - 进阶Spark Master 和 Worker 项目需求学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9123


Spark Master 和 Worker 项目需求


内容介绍:

一、项目意义

二、项目需求分析

三、项目界面设计

Spark Master Worker 进程通讯项目:

这个项目是一个经典项目,因为这里能充分体现它的妙用。


一、项目意义

1、深入理解 Spark Master Worker 的通讯机制

2、为了方便看 Spark 的底层源码(底层源码还有个细节就是设计模式,在升级模式中用的多一些),Sparke 的底层还是很优秀的一个框架,命名方式和源码保持一致(如:通讯消息类命名就是一致的)这样看起来就会更加清晰

3、加深对主机服务心跳检测机制(HeartBeat)的理解,并且这种机制并非Spark 独有,是所有组成都有的一个机制。

如果这边检测到一个 Worker 它如果死掉了那么还会有宕机机制的一个检测,还会有一个恢复机制来恢复它,方便以后 spark 源码二次开发。


二、项目需求分析

首先这个结构跟小黄鸡客服非常相似,只是服务器小黄鸡客服变成了 Master  这就是主服务器。

主服务器下面就是管理了 n 多个 Worker 工作服务器。那么 Worker 服务器要做什么事情

第一个 worker 注册到 master master 完成注册。

要完成一个注册,并回复 walker,注册成功,这是要做的第一件工作。

就是说 Worker 上来过后,他进行 master 里面进行注册,那么有一个hashmap 来进行管理。

Worker 定时发送心跳并在 master 接收到,它会每隔一定时间,比如说三秒就像master 发一个心跳说我还活着。

Master  有一种机制会干什么呢?

启动另外一个 worker 让补充进来。或者是一旦发现这个信息有问题的话,发一个短信息给谁呢?给管理员

Master 接收到第三个 worker 的心跳后,要更新 worker 的最后一次发送心跳时间。我要更新你

第五给 master 启动一个定时任务,定时检测注册的 walker 有哪些没有更新心跳,并将其从 hashmap 删掉,就说他已经不能工作了,再保留到管理队列里面,或者管理的集合里面。

最后一个,Master worker 可以进行分布部署,只需把这个代码拿去运行一下就可以了。

如下图所示:

image.png

(1)Worker 注册到 Master,Master 完成注册,并回复worker注册成功

(2)Worker 定时发送心跳,并在Master  接收到

(3)Master 接收到 worker 心跳后,要更新该worker 的最近一次发送心跳的时间

(4)给Master 启动定时任务,定时检测注册的worker 有哪些,没有更新心跳,并将其从hashmap 中删除

(5)Master worker 进行分布式部署(Linux 系统


三、项目界面设计

首先 master 开始工作那么这样可以接受什么呢?

它可以接收到这个 worker 发送的消息,当然这边也可以回复,如果这边没有回复机制,就说我给你回复,我只是检测你这个回复就可以不要如果有回复,他们就有回复没有回复就没有,但是一般会有,一般比如像注册,如果你注册成功了但没有,给你一个信息说怎么样

这个是一个基本的结构,协议这块仍然是一样,这就变成 worker发送消息给这个服务器,就是相当于发送给 master了。

也会定义一些一系列服务,当然反过来也是一样,就是 master,可能会发送这个消息或者协议发送这个信息给 worker,这是避免不了的,只是这个信息肯定不是这样写的,所以先把它打个问号在这

Worker actor 这边,它会也会创建这个号,也有配置,要拿到谁的引用,如果是主动发起的,就需要拿到master 这边的信息,左边,也会有这个配置,必须得到谁的谁的这个引用显然要得到这一个 master actor 的引用,这个道理都是一样。那么要启动 worker 所以这边就换成了 worker actor。

这时一启动就可以直接完成注册。这样以来它一启动就直接发送。直接发送注册信息。这边它可以接收这个注册成功的消息。

主要通过应用实例,来剖析 Spark 的 Master 和 Worker 的通讯机制,因此功能比较简洁,

设计界面让如下:

image.png

相关文章
|
4月前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
5月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
39 0
|
5月前
|
分布式计算 数据可视化 大数据
基于spark的医疗大数据可视化大屏项目
基于spark的医疗大数据可视化大屏项目
119 0
|
6月前
|
SQL 分布式计算 Java
IDEA 打包 Spark 项目 POM 文件依赖
这是一个 Maven POM 示例,用于构建一个使用 Spark 与 Hive 的项目,目标是将数据从 Hive 导入 ClickHouse。POM 文件设置了 Scala 和 Spark 的依赖,包括 `spark-core_2.12`, `spark-sql_2.12`, 和 `spark-hive_2.12`。`maven-assembly-plugin` 插件用于打包,生成包含依赖的和不含依赖的两种 JAR 包。`scope` 说明了依赖的使用范围,如 `compile`(默认),`provided`,`runtime`,`test` 和 `system`。
89 0
|
6月前
|
消息中间件 关系型数据库 MySQL
Spark实时(数据采集)项目
Spark实时(数据采集)项目
154 2
|
6月前
|
数据采集 分布式计算 Linux
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
180 0
|
6月前
|
Python
【已解决】Caused by: org.apache.spark.SparkException: Python worker failed to connect back.
【已解决】Caused by: org.apache.spark.SparkException: Python worker failed to connect back.
274 0
|
6月前
|
机器学习/深度学习 分布式计算 大数据
【云计算与大数据技术】Spark实战项目之判别西瓜好坏(附源码和数据集)
【云计算与大数据技术】Spark实战项目之判别西瓜好坏(附源码和数据集)
102 0
|
12月前
|
分布式计算 Java Scala
配置spark,并在idea中搭建项目
配置spark,并在idea中搭建项目
136 0
|
机器学习/深度学习 人工智能 分布式计算
SparK项目原作解读:卷积模型的首个BERT预训练
SparK项目原作解读:卷积模型的首个BERT预训练
283 0