SimpleDistributedPlatform纯 Java 的可视化分布式计算平台

联合创作 · 2023-10-01 07:04

一个简单却实用的分布式计算平台,通过提交任务 jar 包来执行分布式任务。

NameNode 和 DataNode 这两个名字是直接引用的 Hadoop 里面的概念,但是更加简化:

  • NameNode:用于分发可执行 jar 包,收集中间计算结果,合并汇总最终计算结果。

  • DataNode:用于接收可执行 jar 包,执行指定的任务方法,上报计算(中间)结果。

  • MyZooKeeper:用于注册与查找 MQ 服务。

  • NameNode 和 DataNode 通过 MQ 进行异步通信。

运行原理:

DataNode 上线时,向 MQ 发送一条 DataNode 上线的消息,NameNode 监听该消息,并在 NameNode 本地维护一个 List<DataNode> 的列表。 当 NameNode 下发可执行 jar 包时,NameNode 依次向本地的 List<DataNode> 每条记录发送一条可执行任务的消息,消息内包含 jar 包的url地址。每个 DataNode 收到消息后执行可执行 jar 包的指定方法,并上报中间数据。当每个 DataNode 执行完毕后,要执行一个 end() 方法,代表该 DataNode 已经执行完毕了。当 Namenode 收到了所有的 DataNode 的自己执行完毕的消息后,开始对所有的中间结果计算合并,最终算出汇总的值。

浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报