本示例把分配任务的程序比喻为“工头”,可以有一个工头进程,也可以有多个工头进程;把处理任务的程序比喻
一、本程序以fourinone-3.04.25.jar为基础
错误:Jdk版本不一致
编译:编译时可一次性进行
二、配置文件config.xml:
三、简单的分布式通讯:
1、首先运行职介所(ParkServerDemo)程序。
2、然后运行工人(SimpleWorker)程序。
3、最后运行包工头(SimpleCtor)程序。
四、多工头、多任务、多工人的分布式计算
本例是采用逐个调用每个工人的doTask()并轮循结果状态的方式实现的,与下面“五”的使用doTas
1、首先运行职介所(ParkServerDemo)程序。
2、然后运行工人(WorkerDemo)程序。
3、最后运行包工头(CtorDemo)程序。
4、前两例总结:
五、工头向工人说hello,工人互相说hello,并批量处理工头任务
1、首先运行职介所(ParkServerDemo)程序。
2、然后运行工人(HelloWorker)程序。
3、最后运行包工头(HelloCtor)程序。
4、总结:
六、实现Hadoop经典实例Word count
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、然后运行工人(WordcountWK)程序。
3、最后运行包工头(WordcountCT)程序。
七、分布式计算自动部署
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、然后在工人节点机器运行工人(MigrantWorker)程序,该程序包含在fourinone.j
3、最后运行包工头(JobCtor)程序。
4、帮助类
5、错误总结
6、尝试远程运行对方机器exe程序
7、尝试在win7开机自启动java程序
八、故障和容灾处理
(1)、故障处理
(2)、容灾处理
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、然后在工人节点机器运行工人(FaultWorker)程序。
3、最后运行包工头(FaultCtor)程序。
源文件为:FaultCtor.java
九、在一台计算上一次性启动多个进程
1、用批处理文件:
2、用fourinone自带的API程序
3、此方法可用于运行工人机器的exe程序
十、中止工人计算和超时中止
1、中止的方式有三种:
2、实例:
①首先运行职介所(ParkServerDemo)程序,即协同服务。
②然后在工人节点机器运行工人(CancelWorker)程序。
③最后运行包工头(CancelCtor)程序。
十一、并行计算与递归算法
1、单机递归测试
2、多机分布式测试
①首先运行职介所(ParkServerDemo)程序,即协同服务。
②运行工人程序CombWorker.java
③运行工头程序CombCtor.java
十二、并行计算应用之 圆周率 ∏
1、单机上求Pi
2、多机分布式:
①、首先运行职介所(ParkServerDemo)程序,即协同服务。
②、运行四个PiWorker.java
③、运行工头PiTest.java
十三、并行计算应用之 PageRank 算法
1、一个赌钱游戏
2、分布式计算网页分析链接关系确定排名先后
①、首先运行职介所(ParkServerDemo)程序,即协同服务。
②、运行PageRankWorker.java
③、运行PageRankCtor.java
十四、并行计算应用之 上亿数据排序 算法
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、运行4个SortWorker.java
3、运行SortCotr.java
十五、工人服务化模式
提示:工头角色转换
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、运行ServiceWorker.java
3、运行CtorClient.java
4、可使用ClientMain.java来一次启动多个工头客户
十五、实时流计算系统
1、首先运行职介所(ParkServerDemo)程序,即协同服务。
2、运行工人StreamWorkerA.java
3、运行两个StreamWorkerB.java
4、运行工头StreamCtorA.java
5、工头StreamCtorB.java代码如下:
十六、相关问题
1、MigrantWorker无法自动感知失联的Park
2、无法重新以main()原有的参数获取Park
3、以上两个问题使用的环境与源代码
4、使用eclipse运行MigrantWorker时提示缺少config.xml文件。
5、使用eclipse运行MigrantWorker时提示缺少META-INF配置文件。
6、错误:NullPointerException
7、错误:ClassNotFoundException
8、错误:Address already in use:bind
9、config.xml配置不当会产生上面错误
附录:
1、BeanContext
2、文本数据