前几天在javaeye的news频道看到这个新闻
JPPF 1.7发布:网格并行处理框架,因为公司也在使用hadoop做些东西(其中也遇到一些问题,感觉文档太少)。所以想看看这个东西跟hadoop的区别。
从
http://sourceforge.net/project/showfiles.php?group_id=135654&package_id=149022下载jppf-driver-bin-1.7-0599-20081217.zip,jppf-node-bin-1.7-0599-20081217.zip和JPPFQuickStart-1.7.0599-20081217.zip。
我们有2台linux机子lab1和lab4,还有一台windows机子lab5.我们把lab1做server,lab4和lab5做node。
在运行之前首先确定有安装ant(下载ant解压,设置好path)。还有需要把端口暴露出来。 执行
sudo vi /etc/sysconfig/iptables
加上以下的代码:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11112 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11113 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 13001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11198 -j ACCEPT
然后restart network
sudo /etc/init.d/network restart
设置启动server(好像jppf叫server为drvier),在lab1上解压jppf-driver-bin-1.7-0599-20081217.zip,然后运行
ant run.driver
如果你看到一下信息则说明server已经跑起来了。
引用
Buildfile: build.xml
run.driver:
[echo] starting the JPPF driver
[java] Class Server initialized - listening on port 11111
[java] Client Server initialized - listening on port 11112
[java] Tasks Server initialized - listening on port 11113
[java] JPPF Driver management initialized
[java] JPPF Driver initialization complete
在lab2和lab5上解压jppf-node-bin-1.7-0599-20081217.zip,找到config/jppf-node.properties文件,把jppf.server.host参数设成你的server的ip地址。然后运行
ant run.node
,出现下面的信息则说明node已经启动并且连接上sever了。
Buildfile: build.xml
run.node:
[java] JPPFClassLoader.init(): attempting connection to the class server
[java] JPPFClassLoader.init(): Reconnected to the class server
[java] PeerNode.init(): Attempting connection to the JPPF driver
[java] PeerNode.init(): Reconnected to the JPPF driver
[java] Node sucessfully initialized
在windows上解压JPPFQuickStart-1.7.0599-20081217.zip,这是一个eclipse项目, 你可以用eclipse导入,修改config/jppf-client.properties文件的HelloServer.jppf.server.host为lab1的ip,jppf.local.execution.enabled为false禁止本地执行。 把org.jppf.helloworld.HelloWorldRunner这个类中间注释的代码去掉。 然后执行runHelloWorld.cmd, 这时就能看到输出了
[client: driver-1 (192.168.1.221:11198)] ClassServerDelegate.init(): Attempting connection to the class server
[client: driver-1 (192.168.1.221:11198)] ClassServerDelegate.init(): Reconnected to the class server
[client: driver-1 (192.168.1.221:11198)] : Attempting connection to the JPPF task server
[client: driver-1 (192.168.1.221:11198)] : Reconnected to the JPPF task server
********** Results: **********
Hello, World
Hello, World (annotated, hello message, 1)
Hello, World (annotated static, hello message, 2)
Hello, World (annotated constructor, hello message, 3)
java.lang.IllegalAccessException: Class org.jppf.client.taskwrapper.PrivilegedMethodAction can not access a member of class org.jppf.helloworld.HelloWorldPojo with modifiers "protected"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.reflect.Method.invoke(Method.java:588)
at org.jppf.client.taskwrapper.PrivilegedMethodAction.run(PrivilegedMethodAction.java:59)
at java.security.AccessController.doPrivileged(Native Method)
at org.jppf.client.taskwrapper.PojoTaskWrapper.execute(PojoTaskWrapper.java:100)
at org.jppf.client.JPPFAnnotatedTask.run(JPPFAnnotatedTask.java:72)
at org.jppf.server.node.NodeTaskWrapper.run(NodeTaskWrapper.java:84)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Hello, World (pojo static, hello message, 5)
Hello, World (pojo constructor, hello message, 6)
null
Hello, World (callable)
要注意的是 如果你的java.exe放在有空格的目录中时,需要用引号括起JAVA_HOME.
结论:JPPF还是非常容易使用的(相对于hadoop来说)。 hadoop还是比较抽象的。 不过hadoop还有分布式文件系统这个东西。 不过感觉目前hadoop比JPPF成熟。 JPPF没什么成功案例。 在它官网列出2个例子。
http://www.jppf.org/testimonials.php
JPPF还是不错的一个东西。 准备用它来做些事情。
今天发现一个问题jppf client默认是使用广播的形式找server,如果你的server没有使用广播的形式 你需要改jppf-client.properties, 默认是true的。
jppf.discovery.enabled = false
分享到:
相关推荐
Java Parallel Processing Framework 并行处理框架
网格计算框架JPPF,Java Parallel Processing Framework,即java并行处理框架.一个开放源码的网格计算框架,它可以在一个分布执行环境中 同时运行多个java应用.这是他的最新版1.5版
Java Parallel Processing Framework(JPPF) 是一个优秀的开源的基于Java的并行处理框架。这是它的安装和使用手册,我自己做的PDF,带书签便于使用!
Java Parallel Processing Framework(JPPF) 是一个优秀的开源的基于Java的并行处理框架。这是它的API手册,因为网站上面不提供apidoc的下载,所以我自己就做了个chm,方便大家使用!
JPPF Server测应用扩展 JPPF扩展 Extends Server 云计算 分布式
JPPF节点(node)测应用扩展 JPPF扩展 Extends Server 云计算 分布式
jppf 2.1 用户手册.介绍了jppf 2.1的使用说明。并对该框架做了深入的说明。
NULL 博文链接:https://m635674608.iteye.com/blog/1911219
JPPF-3.3.2全套
开源网格计算解决方案这是JPPF源代码的所在地。 其他服务可以在以下位置找到:JPPF模块: :包含构建脚本,网站和相关模板,以及作为LibreOffice文本文档的文档 :桌面(基于Swing)管理控制台的代码和资源 :Web...
distribution-maven-plugin.zip,用于创建发行版和上载网格库的maven插件。用于创建发行版和上载网格库的maven插件。
#资源达人分享计划#
mvn 清理包 exec:java JPPFExecutorService - 用例 此测试演示如何使用从 JPPFTask 创建的 JPPFExecutorService(在 JPPF 网格上执行可运行/可调用)。 这里我们需要确保 JPPFExecutorService 提交的作业(每个 ...
scala-rainbow.zip,scala彩虹超简单终端输出着色
#资源达人分享计划#
JPPF使得并行化计算密集型任务并在Grid上执行它们变得容易。
Slimgrid是一个用于网格计算的Java库,比其他程序(JPPF,Hadoop等)更轻便。 主要设计目标是:极简,简单,普及。 如果您需要一些不需要理解大量复杂API的东西,进行详尽的配置和安装,可靠且可靠,仅使用一个端口...
我的应用程序是一个网格计算应用程序,它将POV-Ray(http://www.povray.org/)与JPPF(http://www.jppf.org)框架相连接。 使用我的JppfPov,您可以利用网格计算网络的潜力来执行渲染任务。