spark之master与worker通信模型讲解
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,通信模型架构图master 端代码import akka.actor.{Actor, ActorSystem, Props}import com.typesafe.config.ConfigFacto
千家信息网最后更新 2026年11月03日spark之master与worker通信模型讲解
通信模型架构图
master 端代码import akka.actor.{Actor, ActorSystem, Props}import com.typesafe.config.ConfigFactory// 需要导入这2个包 封装一些属性。class MasterActor extends Actor { //在开始之前调用一次 override def preStart(): Unit = { } //用于接收消息 override def receive: Receive = { case "started" => { println("Master has been started!") //进入这个分支,说明这个Master线程已经启动完成 } case "connecting" => { println("Master has been get connect from Worker!") println("a Worker Node has been register!") //返回消息给Worker sender() ! "connected" Thread.sleep(1000) } case "stoped" => { } }}object Demo01MasterActor { def main(args: Array[String]) { //设置MasterIP和端口 val masterHost = "localhost" val masterPort = "1234" //端口和IP封装到akka架构,获取一个属性配置文件 val conStr = s""" |akka.actor.provider = "akka.remote.RemoteActorRefProvider" |akka.remote.netty.tcp.hostname = "$masterHost" |akka.remote.netty.tcp.port = "$masterPort" """.stripMargin val config = ConfigFactory.parseString(conStr) val masterActorSystem = ActorSystem("MasterActorSystem", config) val masterActor = masterActorSystem.actorOf(Props[MasterActor], "MasterActor") masterActor ! "started" masterActorSystem.awaitTermination(); }}worker端代码import akka.actor.{Actor, ActorSelection, ActorSystem, Props}import com.typesafe.config.ConfigFactoryclass WorkerActor extends Actor { var masterURL: ActorSelection = null //启动Actor之前执行,做初始化工作 override def preStart(): Unit = { //配置访问Master的URL //MasterIP:localhost //MasterPort:8888(根据Master配置) //Master的 ActorSystem对象:MasterActorSystem、MasterActor masterURL = context.actorSelection("akka.tcp://MasterActorSystem@localhost:8888/user/MasterActor") } override def receive: Receive = { case "started" => { println("Worker has been started!") //进入这个分支,说明这个Worker线程已经启动完成 //可以去向Master注册 //请求和Master建立连接 masterURL ! "connecting" } case "connected" => { println("Worker 收到来自Master确认信息!") } case "stoped" => { } }}object Demo01WorkerActor { def main(args: Array[String]) { //初始化MastereIP和端口、WorkerIP和端口 // val masterHost = args(0) // val masterPort = args(1) // val workerHost = args(2) // val workePort = args(3) val masterHost = "localhost" val masterPort = "8888" val workerHost = "localhost" val workePort = "8889" //端口和IP封装到akka架构,获取一个属性配置文件 val conStr = s""" |akka.actor.provider = "akka.remote.RemoteActorRefProvider" |akka.remote.netty.tcp.hostname = "$workerHost" |akka.remote.netty.tcp.port = "$workePort" """.stripMargin val config = ConfigFactory.parseString(conStr) val workerActorSystem = ActorSystem("WorkerActorSystem", config) val workerActor = workerActorSystem.actorOf(Props[WorkerActor], "WorkerActor") workerActor ! "started" workerActorSystem.awaitTermination(); }}
端口
配置
属性
封装
代码
分支
文件
架构
消息
线程
模型
通信
信息
去向
对象
工作
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会
与互联网科技公司
嘟嘟瓜互联网科技
万易互联网科技有限公司
广州宏创互联网科技
科技大学互联网专业好不好
华脉科技工业互联网产品
汉立互联网科技有限公司联系电话
湖南诚度互联网科技有限公司
互联网科技与管理
昊天互联网科技有限公司
智腾互联网科技有限公司
浙南科技城互联网大厦建设工程
中和天地互联网科技有限公司
工业互联网展湾科技股份有限公司
广东鹅鹅鹅互联网科技有限公司
珠海东科互联网科技有限公司
科技互联网行业投资研究
广东猫王互联网科技有限公司电话
山东亿川互联网科技有限责任公司
互联网科技有限公司
科技赋能下的互联网金融
互联网核心科技是什么
无锡溥仪互联网科技有限公司
浙南科技城互联网大厦建设工程
锡山区互联网智能科技产品供应
珠海东科互联网科技有限公司
互联网科技新闻
安徽九吞吴互联网科技有限公司
科技美学互联网 艺术