1

クラスター モードで MPJ Express を構成しているときに問題に直面しています。

http://mpj-express.org/docs/guides/linuxguide.pdfにあるガイドに従っています

環境変数は正常に初期化されます

1) MPJ_HOME および PATH 変数を設定する

a. export MPJ_HOME=/path/to/mpj/

b. export PATH=$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: マシンとポート <10000> でデーモンに接続できません

私が使用しているプラ​​ットフォームは

  • Solaris 10 OS を搭載した Sun Ultra 25 ワークステーション
  • 2 台のマシンからなる Fast Ethernet クラスタを作成しました
  • 各マシンの root ユーザーで ssh が有効になっている
  • ネットワークがしっかりと確立されている

どんな助けや解決策も大歓迎です..

ありがとうございました

4

2 に答える 2

1

stackOverflowで回答するのはこれが初めてです。centos6.3 で jdk1.6.0_32 を使用して MPJExpress-v0_42 をセットアップしましたが、最終的にはすべて問題ないようです。

質問 1: マシンとポートでデーモンに接続できません

これは、デーモンが実行されていない場合に発生する可能性があります。次のようにして試すことができます。

  1. sudo netstat -anp |grep portポートがリッスンしているかどうかを確認し、プロセス ID を取得するために 使用できます。
  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れているようにプロセス ID であり、デーモン プロセスであり、リスニング ポートです。netstatMPJDaemon40001

あなたの質問では、デーモンプロセスに接続できません。以下を実行します。

  1. ポートを確認する必要があります。を使用してポートが見つからない場合はnetstat、通常、MPJDaemon is not running.
  2. 確かに、jps を使用してプロセスを確認することもできます。プロセスが実行されている可能性がありますが、ポートは別のものです
  3. mpjboot machinesや などのクラスタ コマンドは使用しないでくださいmpjrun.sh -np 2 -dev niodev HelloWorldmpjdaemon -boot localhost現在のマシンをテストするために使用できます。構成が正常で、マシン ファイルに の 1 つの項目を設定してlocalhostクラスタ コマンドを実行できる場合です。

私が会った他の質問。

質問 2: ant を使用してコンパイルに失敗しました

最初は and を使用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エラー メッセージは表示されませんが、MPJDeamon は実行されていません。

MPJ_HOMEfrom .bash_profiletoのような環境変数を設定する.bashrcと、問題は解決します。どうしてか分かりません。

質問 4: コマンドjps -mで「MPJDeamon is running」と表示されますが、mpjdaemon -status localhost「mpjdeamon is not running」と表示されます。

コマンド ( ssh localhost nohup 'jps -m')を使用するとjps、コマンドが見つかりませんと表示されますが、jps を使用すると、コマンドは正常に動作します。たぶん上と同じ質問だと思います。のパス環境変数に jps のパスが設定されていません.bashrc。したがって、PATH=/jpspath:$PATHinを 1 行追加すると.bashrc、すべて正常に動作します。

于 2015-10-25T08:02:08.980 に答える
1

クラスタ ノードの環境変数を調べます。

各クラスター ノードに変数を追加してみてください.bashrc(メイン ノードから ssh に接続します)。

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

または、 logging をオンにして/conf/wrapper.conf実行し、結果を報告します。

于 2013-03-28T20:58:38.793 に答える