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 的自己执行完毕的消息后,开始对所有的中间结果计算合并,最终算出汇总的值。

浏览 4
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报