MPJ Express -- 运行时。MPJRuntimeException:无法连接到计算机<x>和端口 <10000 上的守护程序>



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

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

环境变量被成功初始化为

1)设置MPJ_HOME和PATH变量

export MPJ_HOME=/path/to/mpj/

b。 export PATH=$PATH:$MPJ_HOME/bin

2)还可以使用机器文件

成功添加机器。<<p> mpjboot机器/strong>

显示消息开始mpjd…

3)下一步是通过

测试helloworld程序

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

当我这样做的时候,我得到这个错误

运行时。MPJRuntimeException: Cannot connect to daemon at machine and port <10000>

我使用的平台是

  • 安装Solaris 10 OS的Sun Ultra 25工作站
  • 我已经做了一个2台机器的快速以太网集群
  • ssh在每台机器上以root用户启用
  • 网络建立良好

任何帮助或解决方案都是感激的。

谢谢

检查集群节点环境变量

尝试在每个集群节点上为.bashrc添加变量(从主节点ssh到它):

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

或者,打开日志/conf/wrapper.conf,运行并报告您的发现

这是我第一次在stackOverflow中给出答案。我用jdk1.6.0_32在centos6.3中设置了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
    

    这里8766为processId,如netstat所示,MPJDaemon为守护进程,40001为监听端口。

在你的问题中,你不能连接守护进程。

  1. 应该检查端口。如果您无法使用netstat找到端口,则通常意味着MPJDaemon is not running
  2. 可以肯定的是,您也可以使用jps来检查进程。可能进程正在运行,但端口是另一个
  3. 不要使用mpjboot machinesmpjrun.sh -np 2 -dev niodev HelloWorld之类的集群命令。你可以使用mpjdaemon -boot localhost来测试当前的机器,如果它被配置好了,你可以用localhost的一个项目来设置机器文件,并运行集群命令。

我遇到的其他问题

问题2:使用ant编译失败

起初我使用MPJ-v0_44.zipjdk1.6.0,但它无法编译并给出ProcessBuilder has no method of "interNIO"(something like that)的错误。我分析了源代码,猜测这可能是因为JDK版本稍微低一些。考虑到升级JDK有点复杂,我找到了另一个MPJ版本的mpj-v0_42.zip,它编译得很好。

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

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

问题4:命令jps -m显示"MPJDeamon is running",mpjdaemon -status localhost显示"MPJDeamon is not running"。

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

相关内容

  • 没有找到相关文章

最新更新