没有合适的资源?快使用搜索试试~ 我知道了~
基于Akka模拟实现Spark Standalone.pdf
需积分: 5 0 下载量 74 浏览量
2024-05-15
10:53:37
上传
评论
收藏 831KB PDF 举报
温馨提示
试读
7页
基于Akka模拟实现Spark Standalone.pdf
资源推荐
资源详情
资源评论
1. Akka 介绍
2. 使用 Akka 模拟实现 Spark Standalone
3. 模拟实现 Spark Standalone 代码实现
3. 1. SparkMaster 代码实现
3. 2. SparkWorker 代码实现
3. 3. 辅助类 Message 实现
3. 4. 辅助类 Constant 实现
3. 5. 项目 pom.xml 文件内容
4. 运行测试
1. Akka 介绍
Akka 是一个用 Scala 编写的库,用于在 JVM 平台上简化编写具有可容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用,其同时提供了Java 和 Scala
的开发接口。Akka 允许我们专注于满足业务需求,而不是编写初级代码。在 Akka 中,Actor 之间通信的唯一机制就是消息传递。Akka 对 Actor 模型的
使用提供了一个抽象级别,使得编写正确的并发、并行和分布式系统更加容易。
重点知识:三个重要的概念: ActorSystem actor ActorRef
Akka 大致工作原理图解:
Spark 集群中 Master Worker: worker 现在要发送注册(RegisterWorker)消息给 Master: masterActorRef.send(RegisterWorker)
Spark-1.x 版本中的应用程序执行的时候,会生成给一个 Driver 和 多个 Executor 。
它的内部就有两个 Actor:
Spark RPC 中的 Endpoint 的作用,就类似于 Akka 中的 Actor,实际上,Endpoint 的内部就是封装了一个 Actor
1、ActorSystem 管理通信角色 actor 的一个系统概念,在一个服务器节点中,只要存在一个这样的对象就可以,这个对象的作用,就是用来生成和管理所有的
通信角色的生命周期
2、通信角色 Actor,存在于一台服务器中的一个 ActorSystem 的内部,用来和其他节点的 actor 进行通信。每个 Actor 都有一个 MailBox,别的
Actor 发送给它的消息都首先储存在 MailBox 中,通过这种方式可以实现异步通信。
3、每个 Actor 是单线程的处理方式,不断的从 MailBox 拉取消息执行处理,所以对于 Actor 的消息处理,不适合调用会阻塞的处理方法。
4、Actor 可以改变他自身的状态,可以接收消息,也可以发送消息,还可以生成新的 Actor
5、每一个 ActorSystem 和 Actor都在启动的时候会给定一个 name,如果要从 ActorSystem 中,获取一个 Actor,则通过以下的方式来进行 Actor 的
获取:akka.tcp://asname@bigdata02:9527/user/actorname
6、如果一个 Actor 要和另外一个 Actor 进行通信,则必须先获取对方 Actor 的 ActorRef 对象,然后通过该对象发送消息即可。
7、通过 tell 发送异步消息,不接收响应,通过 ask 发送异步消息,得到 Future 返回,通过异步回到返回处理结果。
1、DriverActor: 负责发送任务给其他的 worker 中的 executor 来执行的,作用和 Spark-2.x 版本中的 DriverEndpoint 是一样的
2、ClientActor: 负责和 master 进行通信,作用和 Spark-2.x 版本中的 ClientEndpoint 是一样的
资源评论
shandongwill
- 粉丝: 3680
- 资源: 466
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功