tinympi4j - 微型 java 分布式离线计算框架


MIT
跨平台
Java

软件简介

tinympi4j 是一款微型的 java 分布式离线计算框架, 实现原理如图:

特性

  • 简单直观, 没有任何学习难度

  • slave支持多个任务并发/并行执行

  • 使用HTTP协议通信

  • 场景: 找素数/grep/wordcount/超大文件或大量小文件处理

  • 不支持复杂数据类型

  • 没有进度监控,健康监控,无容错功能

例子: 用两台服务器分布式计算找出10000以内的素数

public static void main(String[] args) {

        //启动master上的tomcat
        final int masterport = 8086;
        final String masterurl = "http://192.168.1.100:" + masterport;
        TomcatTool.startMasterTomcat(masterport);

        //创建任务
        final BigTask<Integer> bigtask = BigTask.create(masterurl);

        //添加任务到两台计算节点, 请确保计算节点上的 tinympi4j-slave 已启动
        //关于计算节点: https://github.com/binaryer/tinympi4j-slave
        bigtask.addTask2Slave("http://192.168.1.101:1234", PrimeSplitedtask.class, new Integer[] { 2, 5000 });
        bigtask.addTask2Slave("http://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);
        }
    }