2019独角兽企业重金招聘Python工程师标准>>>

假设你已经看过 分布式计算上手demo指南,对fourinone基本的分布式并行计算方式有了初步了解。

本demo演示了工头和几个工人之间互相sayhello的简单例子,从而了解到集群计算节点之间互相交互,以及工头批量处理和工人互相传递数据(多用于合并)的功能。

HelloCtor:是一个工头实现,它实现giveTask接口,它首先通过getWaitingWorkers获取到一个线上工人的集合,然后通过doTaskBatch进行批量任务处理,这里工头向每个工人说句“hello”打招呼。doTaskBatch有两个参数,分别是工人集合和任务,该方法会等到每个工人都执行完该任务才返回,因此使用doTaskBatch不需要轮循检查每一个调用结果,它是一个批量处理。为了节省资源利用,工头运行结束后不会退出jvm,可以使用exit方法强行退出。

HelloWorker:是一个工人实现,这里它实现了doTask和receive接口,分别用于被工头和其他工人调用。doTask实现了被工头调用执行任务的内容,这里该工人向工头和其他工人“say hello”招呼,并告诉自己的名字。它通过getWorkerElse获取到集群中除自己以外的其他工人,getWorkerElse可以传入一个参数指定工人类型,然后依次调用其他工人的receive方法传递信息。receive实现了该工人被其他工人调用的处理内容,参数WareHouse由其他工人传入,它返回一个boolean值,可以代表接收和处理是否成功。这里简单的将其他工人的问候输出。

运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件的PARK部分的SERVERS指定)
2、运行一到多个HelloWorker(传入3个参数,依次是该工人的名字、ip或者域名、端口)
3、运行HelloCtor

注意:doTaskBatch会等集群中最慢的一个工人完成任务才统一返回,如果希望能让机器运行快的机器在完成后能马上又分配新的任务,而不用等待,实现能者多劳,可以不使用doTaskBatch,而采用逐个调用每个工人的doTask并轮循结果状态的方式实现,具体请参考 分布式计算完整demo

实际上,工头对工人的调用是通过doTask,工人对工人的调用是通过receive。doTask用于工头分配任务,receive多用于工人之间合并传递数据,每个工人都可以同时向其他工人传递数据,并接收来自其他工人的数据。集群中每个工人向其他工人传递数据都完成了,也就意味着每个工人都接收完成了。

附件是demo
企鹅群:241116021
邮箱:Fourinone@yeah.net

开发包及指南下载地址:
http://www.skycn.com/soft/68321.html

转载于:https://my.oschina.net/fourinone/blog/70178

分布式计算互相sayhello相关推荐

  1. Spark 分布式计算原理

    Spark 分布式计算原理 Spark Shuffle 1)在数据之间重新分配数据 2)(将父RDD重新定义进入子RDD)每一个分区里面的数据要重新进入新的分区 3)每一个shuffle阶段尽量保存在 ...

  2. 分布式计算开源框架Hadoop入门实践

    在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章<Tiger Concurrent Practice --日志分析并行分解设计与实 ...

  3. 在家搭建大数据分布式计算环境!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale原创作者 0. 前言 分布 ...

  4. 浅谈分布式计算的开发与实现(一)

    阅读目录: 介绍 利用分片算法 利用消息队列 Hadoop简介 MapReduce 离线计算 介绍 分布式计算简单来说,是把一个大计算任务拆分成多个小计算任务分布到若干台机器上去计算,然后再进行结果汇 ...

  5. 并行计算与分布式计算

    并行计算:parallel computing 分布式计算:distributed computing 并行计算:这是一台计算机的概念,即一台计算机中多个处理器被组织起来,大任务下达的时候,将大任务分 ...

  6. VM Depot 分布式计算框架主题应用精选

     发布于 2014-12-24 作者 陈 忠岳 在前几期为各位介绍了大数据应用主题以及开发运营主题的各类镜像后,这次我们精选了 VM Depot 站点中分布式计算相关主题的虚拟机镜像和大家一起分享 ...

  7. 十分钟了解分布式计算:GraphX

    GraphX原型论文 GraphX是Spark中用于图(e.g., Web-Graphs and Social Networks)和图并行计算(e.g., PageRank and Collabora ...

  8. 浅谈分布式计算的开发与实现

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 分布式计算简单来说,是把一个大计算任务拆分成多个小计算任务分布到若干台机器上去计算,然后再进行结果汇总. 目的在于分析计 ...

  9. 用GPU拯救世界:英伟达斯坦福呼吁玩家捐献算力,投入新冠病毒相关蛋白质分布式计算...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 作为一名普通的游戏玩家,除了注意防护.减少出行外,还能为新冠疫情做些什么? 英伟达呼吁:捐出你的 GPU/CPU 算力. 怎么个捐法? 通过 ...

最新文章

  1. python-study-12
  2. java中redis实现篇
  3. 通过CMD命令行创建和使用Android 模拟器 AVD
  4. 面试官系统精讲Java源码及大厂真题 - 02 String、Long 源码解析和面试题
  5. azure云数据库_将Azure SQL数据库警报集成到Slack
  6. tcpdump 抓包
  7. js 中的 number 为何很怪异 1
  8. phpcms v9框架的目录结构分析
  9. 软件架构——系统分析员、系统架构师、项目经理的区别
  10. app上架vivo应用商店流程
  11. 2021-3-22科研进展
  12. mac mini u盘安装系统_用u盘安装win7系统安装步骤
  13. Juniper 210 密码清不掉_手机丢后分分钟被洗劫一空,教你设置 SIM 卡密码 - SIM卡,隐私...
  14. mysql有符号和无符号,MySQL中的“无符号”是什么意思以及何时使用它?
  15. Navicat 连接 MySql 报错2059时的解决方法
  16. 关于微积分教材的翻译工作
  17. markdown编辑器实现代码高亮
  18. 世界第一!泰山JDK8完美支持TTC字体文件的效果图
  19. 基于Java的学校试卷生成系统设计与实现(附数据库)
  20. 社区团购小程序如何运营推广技巧?

热门文章

  1. 从零开始小说 html,从零开始的HTML生活
  2. 终于!《iOS 全埋点解决方案》正式出版
  3. 极致的线上产品设计与终极数据分析工具,两者缺一不可(中)
  4. Alphabet以3.8亿美元收购董事格林创业公司Bebop
  5. Android的init过程:init.rc解析流程
  6. Java_Notes_基础排序总结与对比
  7. Android动画 详解(一 补间动画)
  8. PHP __compare 魔术方法的实现
  9. posix多线程有感--线程高级编程(条件变量)
  10. 有关SQL server connection Keep Alive 的FAQ(2)