tinympi4j是一款微型的java分布式离线计算框架,实现原理如图:
特性简单直观,没有任何学习难度
slave支持多个任务并发/并行执行
使用HTTP协议通信
场景:找素数/grep/wordcount/超大文件或大量小文件处理
不支持复杂数据类型
没有进度监控,健康监控,无容错功能
例子:用两台服务器分布式计算找出10000以内的素数
public static void main(String[] args) {//启动master上的tomcatfinal int masterport = 8086;final String masterurl = "https://192.168.1.100:" + masterport;TomcatTool.startMasterTomcat(masterport);//创建任务final BigTask<Integer> bigtask = BigTask.create(masterurl);//添加任务到两台计算节点, 请确保计算节点上的 tinympi4j-slave 已启动//关于计算节点: https://github.com/binaryer/tinympi4j-slavebigtask.addTask2Slave("https://192.168.1.101:1234", PrimeSplitedtask.class, new Integer[] { 2, 5000 });bigtask.addTask2Slave("https://192.168.1.102:1234", PrimeSplitedtask.class, new Integer[] { 5001, 10000 });//等待所有节点执行完毕final Collection<Integer> resultset = bigtask.executeAndWait();//打印结果for (int n : resultset){//System.out.println(n);}}
评论