MPJ Express - runtime.MPJRuntimeException:无法连接到计算机<x>和端口&lt; 10000&gt; </x>的守护程序

时间:2013-03-18 06:40:54

标签: mpj-express

我在群集模式下配置MPJ Express时遇到问题。

我正在按照给出的指南 http://mpj-express.org/docs/guides/linuxguide.pdf

环境变量已成功初始化为

1) 设置MPJ_HOME和PATH变量

a。导出MPJ_HOME = / path / to / mpj /

b。导出路径= $ PATH:$ MPJ_HOME / bin

2) 这些机器也成功添加了机器文件

mpjboot机器

显示消息 开始mpjd ...

3) 下一步是通过

测试HelloWolrd程序

编译: javac -cp .: $ MPJ_HOME / lib / mpj.jar HelloWorld.java
10.执行:mpjrun.sh -np 2 -dev niodev HelloWorld

当我这样做时,我收到此错误

runtime.MPJRuntimeException:无法连接到计算机和端口上的守护程序&lt; 10000&gt;

我使用的平台是

  • 使用Solaris 10 OS的Sun Ultra 25工作站
  • 我制作了一台2台机器的快速以太网集群
  • 在每台计算机上使用root用户启用ssh
  • 网络建立良好

任何帮助或解决方案都表示赞赏..

谢谢

2 个答案:

答案 0 :(得分:1)

检查群集节点环境变量。

尝试将vars添加到每个群集节点中的.bashrc(从主节点ssh到它):

echo 'export MPJ_HOME=/home/<user>/path/to/mpj' >> ~/.bashrc
echo 'export PATH=$PATH:$MPJ_HOME/bin' >> ~/.bashrc

或者,打开记录/conf/wrapper.conf,运行并报告您的发现。

答案 1 :(得分:1)

这是我第一次在stackOverflow中给出答案。 我在我的centos6.3中使用jdk1.6.0_32设置了MPJExpress-v0_42,最后一切似乎都没问题。

问题1:无法连接到机器和端口的守护进程

守护程序未运行可能会发生这种情况。您可以尝试如下:

  1. 您可以使用sudo netstat -anp |grep port检查端口是否正在侦听并获取processId。
  2. 在我的机器中,在使用mpjdaemon -boot localhost启动守护程序后,我使用sudo netstat -apn |grep 4000命令检查端口并得到以下内容。

    tcp        0      0 :::40000                    :::*                        LISTEN      8766/java           
    tcp        0      0 :::40001                    :::*                        LISTEN      8766/java
    

    端口在$MPJ_HOME/conf/wrap.conf中配置,我的配置如下:

    #port number for the daemon.
    wrapper.app.parameter.2=40001
    #Socket Server Port Number.
    wrapper.app.parameter.3=40000
    
  3. 我还使用jps -m命令获取java守护进程,结果如下:

    8766 MPJDaemon 40001
    30850 Jps -m
    

    此处8766netstat显示的processId,MPJDaemon是守护进程,40001是侦听端口。

  4. 在您的问题中,您无法连接守护程序进程。 执行以下操作:

    1. 你应该检查一下这个端口。如果您使用netstat找不到该端口,则通常表示MPJDaemon is not running
    2. 当然,您也可以使用jps来检查流程。也许进程正在运行,但端口是另一个
    3. 请勿使用mpjboot machinesmpjrun.sh -np 2 -dev niodev HelloWorld等群集命令。您可以使用mpjdaemon -boot localhost测试当前计算机,如果配置正常,您可以使用localhost项设置计算机文件并运行群集命令。
    4. 我遇到的其他问题。

      问题2:使用ant

      编译失败

      首先我使用MPJ-v0_44.zipjdk1.6.0,但它无法编译并发出错误ProcessBuilder has no method of "interNIO"(something like that)。我分析源代码和猜测可能是因为JDK版本更低。鉴于JDK的升级很复杂,我找到了mpj-v0_42.zip的另一个MPJ版本并编译好了。

      问题3:mpjdaemon -boot localhost没有错误消息,但MPJDeamon没有运行。

      MPJ_HOME之类的环境变量从.bash_profile配置为.bashrc后,问题就解决了。我不知道为什么。

      问题4:命令jps -m说&#34; MPJDeamon正在运行&#34; ,但是mpjdaemon -status localhost说&#34; mpjdeamon没有运行&#34;。

      我使用命令(ssh localhost nohup 'jps -m')并且它找不到jps命令,但我使用jps命令工作正常。我猜也许它和上面的问题一样。未在.bashrc的路径环境变量中配置jps的路径。因此,在PATH=/jpspath:$PATH中添加一行.bashrc后,一切正常。