akka的actor可以实现spark的常驻

scala学习第四篇之Actor&AKKA实战(线程) 前言: Scala的Actor有点类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同。Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。 Spark中使用的分布式多线程框架,是Akka,是Scala的一种多线程的类库。Akka也实现了类似Scala Actor的模型,其核心概念同样也是A... 阅读详情
package sparkcontext_actor

import akka.actor.{ActorSystem, Props}
//akka的actor可以实现spark的常驻
import scala.io.StdIn
/*
创建actorsystem一个实例,然后由实例创建一个子actor--> as.actorof 返回的是一个actor的代理 actorref,
由actorref与actor交互
 */
object Student extends App{

/*1.创建ActorSystem
//ActorSystem作为顶级Actor,可以创建和停止Actors,甚至可关闭整个Actor环境,
//此外Actors是按层次划分的,ActorSystem就好比Java中的Object对象,Scala中的Any,
//是所有Actors的根,当你通过ActorSystem的actof方法创建Actor时,实际就是在ActorSystem
下创建了一个子Actor*/
  val as = ActorSystem.apply()


  //通过ActorSystem创建TeacherActor的代理(ActorRef),即通这个actorsystem创建子actor角色
  //           def actorOf(props: Props): ActorRef
  val myActor = as.actorOf(Props(new MyActor(new Teacher("lc"))))
  //ActorSystem通过actorOf创建Actor,但其并不返回TeacherActor而是返回一个类型为ActorRef的东西,
  //ActorRef作为Actor的代理,使得客户端并不直接与Actor对话,这种Actor
  //模型也是为了避免TeacherActor的自定义/私有方法或变量被直接访问,所
  //以你最好将消息发送给ActorRef,由它去传递给目标Actor



  // 发送QuoteRequest消息到代理中.你只需通过!方法将QuoteReques消息发送给ActorRef(注意:ActorRef也有个tell方法,其作用就委托回调给!)
  while (true){
    val line = StdIn.readLine()
    myActor ! line
  }
}

=======================================

package sparkcontext_actor

import akka.actor.Actor


//这里继承actor必须要实现一个方法 receive方法,,,
class MyActor (teacher:Teacher) extends Actor{
  private var _teacher:Teacher = _

  override def receive: Receive = {
    case x:String => _teacher.answerQuestion(x)
    case _ => println("你的提问老师不能理解!")
  }

  override def preStart(): Unit = {//将传进来的参数初始化.
    _teacher = teacher
  }

  override def postStop(): Unit = {

  }
}

===============================

package sparkcontext_actor

class Teacher(name:String) {

  var _name:String = name


  def answerQuestion(question:String): Unit ={
    println(_name+"老师回答了问题:" + question)
  }

}
akka和netty在flink和spark中的使用 一个本地端点对应一个收件箱,Inbox 里面有一个 InboxMessage 的链表,InboxMessage 有很多子类,可以是远程调用过来的 RpcMessage,可以是远程调用过来的 fire-and-forget 的单向消息 OneWayMessage,还可以是各种服务启动,链路建立断开等 Message,这些 Message 都会在 Inbox 内部的方法内做模式匹配,调用相应的 RpcEndpoint 的函数。每个Actor是一个单一的线程,它不断地从其邮箱中拉取消息,并且连续不断地处理。 阅读详情

相关推荐

Spark如何使用Akka实现进程、节点通信的简明介绍

Akka是一款提供了用于构建高并发的、分布式的、可伸缩的、基于Java虚拟机的消息驱动应用的工具集和运行时环境。从下面Akka官网提供的一段代码示例,可以看出Akka并发编程的简约。

beliefer的博客 1万+

[Spark]Spark常用的优化方法

目录 优化目的 Spark-core的优化 Yarn 模式下动态资源调度 Shuffle阶段调优 MapPartitions分区替换map计算结果 使用foreachPartitions替代foreach 设置num-executors参数 设置executor-memory参数 设置executor-cores 注意Collect的使用 使用reduceByKey替换groupByKey 数据倾斜 将HDFS上的文本格式数据转换为Parquet格式数据 Spark-sql.

henku449141932的博客 8688

Scala第二十章节(Akka并发编程框架、Akka入门案例、Akka定时任务代码实现、两个进程间通信的案例以及简易版spark通信框架案例)

1. 理解Akka并发编程框架简介 2. 掌握Akka入门案例 3. 掌握Akka定时任务代码实现 4. 掌握两个进程间通信的案例 5. 掌握简易版spark通信框架案例

m0_56525833的博客 2498

spark 如何用netty实现akka的actor模型

Spark的中,通过netty实现了类似akka的actor机制。 在spark中,一个EndPointData就类似一个akka中的actor。 private class EndpointData( val name: String, val endpoint: RpcEndpoint, val ref: NettyRpcEndpointRef) { v...

不说话装高手 2613

Actor模型与Akka

Actor模型与Akka 一. Actor模型 Actor模型概念 一个概念模型,用于处理并发计算 Actor模型内部的状态由自己的行为维护,外部线程不能直接调用对象的行为,必须通过消息才能激发行为,这样就保证Actor内部数据只有被自己修改 Actor模型组成 Actor模型详解 在Actor模型中,一切都可以抽象为Actor,一个Actor指的是一个最基本的计...

vinfly_li的博客 1875

MODBUS通讯不求人:手把手教你用三菱FX2N控制士林变频器

本文详细介绍了如何使用三菱FX2N PLC通过MODBUS协议控制士林变频器,涵盖硬件连接、参数配置、程序设计及通讯优化等关键步骤。特别针对没有内置MODBUS函数块的老款PLC,提供了CRC校验和稳定数据交换的实用解决方案,帮助工程师快速实现工业自动化设备的高效通讯。

v4w5x6的博客 226

scala_Akka并发编程框架

文章目录Akka并发编程框架简介Akka介绍Akka特性Akka通信过程创建ActorAPI介绍入门案例实现步骤1. 创建Maven模块2. 创建并加载Actor3. 发送/接收消息Akka定时任务使用方式示例一示例二实现两个进程之间的通信案例介绍1. Worker实现2. Master实现简易版spark通信框架案例案例介绍实现思路1. 工程搭建2. 构建Master和Worker3. Work...

Imflash的博客 640

电机控制::软件架构::微型软件架构

所谓软件架构就是软件分层:HAL库,嵌入式操作系统,中间件,应用层。大型项目可参考借鉴ROS/PX4/Apollo/FMT等无人机、机器人、无人驾驶等开源项目;电机控制大型为AUTOSAR架构,小型跑裸机参考 前后台系统 或 微型实时操作系统对模块管理的思想。基本原理还是参照大型项目的架构来的,只是大部分层与块都相对简单,也没有操作系统这一层。硬件架构了解不同芯片组合及其各自的特点。1.FPGA+;2.架构;3.TC387+AUTOSAR架构,车规级,汽车领域常用。

one__leaf的博客 1695

基于spark sql引擎的即席查询服务

项目地址 IQL,多多支持,欢迎star IQL 参考 spark sql在喜马拉雅的使用之xql的load、select、save语法实现了一套基于spark的即席查询服务 优雅的交互方式,支持多种datasource/sink spark常驻服务,基于zookeeper的引擎自动发现 负载均衡,多个引擎随机执行 多session模式实现并行查询 基于spark的动态资源分配,...

UFO的博客 3918

【Dify】知识库智能检索应用

本文介绍了一个基于大语言模型的知识库检索系统,实现从自然语言提问到智能回答的自动化流程。该系统通过知识检索节点定位相关信息,利用重排序模型优化结果,最后由大语言模型生成自然语言答案。核心模型包括InternLM2-7B和BCE重排序模型。工作流程包含输入问题、检索重排序、智能生成和答案输出四个阶段,适用于企业知识管理、客户支持、教育培训等多种场景,能显著提升信息检索效率和准确性。文章还提供了相关开发文档链接,涵盖AIGC工具平台搭建、常见问题解决等内容。

Mr数据杨 1000

第4-4课:状态压缩与动态规划

什么是状态压缩 动态规划问题中重要的一环就是确定状态的定义,在大多数情况下,状态中所包含的信息并不多,比如线性规划问题的状态一般表示为 d[i,j](i 表示状态的位置,j 表示状态的阶段),算法实现时可用二维数组保存计算过程中的状态。但是也有一些问题,它的状态中包含的信息很多,比如它的状态可能是一个集合中各个元素的情况,或者是像铺瓷砖问题这样,是某一行的覆盖状态。如果沿用简单的状态表示方法,则可...

oRbIt 的专栏 700

Akka框架深度解析:从Actor模型到大数据的响应式架构

Actor模型是一种处理并发计算的数学模型,它将Actor作为通用的并发原语。每个Actor是一个独立的计算单元,拥有自己的状态和邮箱(mailbox),并通过异步消息与其他Actor通信。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;Actor系统发送消息更新状态发送消息创建子ActorActor AActor B的邮箱。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2413

MobileFusion:基于结构重参数化的移动端红外可见光图像融合方法

MobileFusion提出了一种轻量化的红外与可见光图像融合框架,通过结构重参数化技术实现移动端实时部署。该方法包含可重参数多分支卷积(RepMBConv)、轻量化上下文感知注意力(LCAA)和重参数前馈网络(RepFFN)三大模块,在训练时保留多分支结构增强特征学习,推理时合并为单路算子提升效率。实验表明,MobileFusion在MSRS、FMB等数据集上实现了融合质量与推理速度的平衡,参数量仅4000,在边缘设备上也能高效运行,为资源受限场景提供了实用解决方案。代码已开源。

毕竟是Shy哥 137

Actor模型与Akka Actor体系基础总结

前言 最近用业余时间把Flink的RPC基础设施翻了个底朝天,又与之前分析过的Spark RPC机制做了一些对比,越发觉得Actor模型甚为精妙,值得简单记录一下,顺便也可作为日后解析Flink RPC机制的基础入门。 Actor模型 Actor模型由Hewitt、Bishop和Steiger在1973年通过论文《A Universal Modular Actor Formalism for Ar...

LittleMagic's Blog 1213

LPDDR6与LPDDR5 ZQ Calibration技术探讨

LPDDR6与LPDDR5 ZQ Calibration技术探讨

zilan23的博客 1099

经典的YOLOv3和YOLOV5算法详解及代码复现

yolov3和yolov5算法详解及代码复现

hasakie的博客 770

Spark内部通信/akka

Spark的Client、Master、Worker之间的通信使用akka完成。 模块之间的通信机制可以分为基于消息的传递和基于资源共享的同步机制。 在Spak中的Client、Master和Worker实际上都是一个actor。

ae5555的专栏 1678

多物理场耦合仿真-主题032-电磁-流体耦合

电磁-流体耦合,即磁流体动力学(MHD, Magnetohydrodynamics),是研究导电流体在电磁场中运动规律的学科,涉及电磁场与流体力学的深度耦合。本主题系统阐述磁流体动力学的基本理论、控制方程和数值方法。首先介绍MHD的基本概念和物理基础,包括导电流体的性质、电磁场基本方程;然后详细推导MHD控制方程组,包括连续性方程、动量方程、能量方程和电磁场方程;接着讨论MHD流动的特征参数,如Hartmann数、磁雷诺数、相互作用参数等;最后通过六个典型工程案例展示MHD分析的实际应用,包括电磁泵、磁流体

2401_87715305的博客 424

Scala实战编程、Akka实现一个简易版的spark通信编程、spark原理、Akka简介、启动Akka在IDEA中配置参数 27

1. Spark底层通信原理(Akka) 1.1 原理 主节点Master,从节点Worker 每个节点底层都是Akka原理,主从之间通信,其实就是actor之间通信。 老大ActorSystem 老大负责创建actor worker通信给master,需要使用master的引用,master给worker通信,直接sender。 1.2 RPC Akka底层也是RPC原理,RPC(R...

啊策策大数据社区 521

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Akka事件驱动与Spark流式集成:reference-apps的Actor架构解析

reference-apps 是 Databricks 开源的 Spark 参考应用集,其中 timeseries 模块堪称 **Akka事件驱动与Spark流式集成** 的教科书级范例。它以天气时序数据为业务场景,将 Apache Spark、Spark Streaming、Kafka、Cassandra 与 Akka Actor 模型深度整合:Kafka 负责数据接入,Spark 负责流式处理

gitblog_00903的博客 192

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spark与Akka集成

1.背景介绍 Spark和Akka都是现代大数据处理和分布式系统领域的重要技术。Spark是一个快速、易用的大数据处理框架,可以用于批处理、流处理和机器学习等多种任务。Akka是一个用于构建分布式系统的开源框架,它提供了一组可扩展的工具和库,以实现高性能、可靠性和可伸缩性。 在大数据处理和分布式系统中,Spark和Akka之间的集成非常重要,因为它们可以相互补充,提供更强大的功能。例如,Spa...

AI天才研究院 1175

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

使用Akka的Actor模拟Spark的Master和Worker工作机制

使用Akka的Actor模拟Spark的Master和Worker工作机制

m0_46168848的博客 926

Spark的底层通信之Actor

Actor 能够实现并行编程的强大功能,它是基于事件模型的并发机制,Scala是运用消息的发送、接收来实现高并发的,Actor 可以看作是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。一个 Actor 收到其他 Actor 的信息后,它可以根据需要作出各种相应。消息的类型可以是任意的,消息的内容也可以是任意的(Scala Actor 是 scala 2.10.x 版本及以前...

孙大迪迪的博客 822

Spark为何使用Netty通信框架替代Akka

...

小白学编程 4481

scala编程实战----【使用Akka实现两个进行间的通信、简易版spark框架】

目标 : 使用 Akka 实现一个简易版的 spark 通信框架 项目概述 1. 需求 ​ 目前大多数的分布式架构底层通信都是通过 RPC 实现的,RPC 框架非常多,比如前我们学过的 Hadoop 项目的 RPC 通信框架,但是 Hadoop 在设计之初就是为了运行长达数小时的批量而设计的,在某些极端的情况下,任务提交的延迟很高,所以 Hadoop 的 RPC 显得有些笨重。 ​ Spark ...

CoderBoom的博客 826
上一篇: GenericObjectPool实现了线程池中的对象回收和管理等功能(spark-mysql)
下一篇: 彻底删除Kafka中的topic
Alwaysdazz
博客等级 码龄8年 24粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值