2

Centos6.5 サーバーのクラスターで作業しています。ここでは、1 つのヘッド ノードがあり、残りはスレーブ ノードです。ノードは、外部からは見えないローカル ネットワーク 192.168.1.x 上のスイッチを介して接続されています。

ヘッド ノードで Python Dispy を使用して、Python スクリプトをスレーブ ノードに配布しようとしています。スレーブ ノードはすべて dispynode.py を実行しており、クライアント ノードで Dispy プログラムを起動すると、dispynode.py を実行しているスレーブは「192.168.1.1 からの ping を無視します」を返します。その後、ハングします。dispynode を実行しているスレーブがジョブを無視して実行していない理由について何か考えはありますか?

ありがとう!

4

1 に答える 1

0

答えは、上記の @Rich のとおりです。バージョンは同じでなければなりません。クライアント ノードとサーバー ノードのバージョンが異なる場合、Dispy は有用なエラー メッセージを返しません。正しく通信するには、同じバージョン番号が必要です。dispynode.py のソース コードでこれを見つけました。

try:
                info = unserialize(msg[len('PING:'):])
                assert info['version'] == _dispy_version
                if info['ip_addr'] is None:
                    addr = (addr[0], info['port'])
                else:
                    addr = (info['ip_addr'], info['port'])
except:
                logger.debug('Ignoring ping message from %s (%s)', addr[0], addr[1])
                continue

assert version 行に注意してください。

于 2015-01-26T16:35:09.860 に答える