2017-10-11 6 views
0

のプライベートIPをマスタに接続しようとした:10.xx2のMesosスパークスレーブは、私は以下のようにシステムにインストールしました代わりに、パブリックIP

--mesosマスターのプライベートIP、公開を35.xx6

--mesosスレーブプライベートIP、192.xx10、パブリック111.xx2

これで、マスタはスレーブにタスクを正常に割り当てましたが、タスクは失敗しました。以下のようにエラーメッセージは次のとおりです。 に成功によって引き起こさ

接続する前にタイムアウトを確認する::org.apache.sparkのスレッド "メイン" 17/10/11午後10時38分01秒ERRORのRpcOutboxMessageで

例外.rpc.RpcTimeoutException: は120秒以内に応答を受信できません。このタイムアウトは spark.rpc.askTimeoutによって制御される

私は環境を見て、代わりにパブリックIPアドレス35、それのマスター10.xx2のプライベートIPアドレスにspark.driver.hostポイント.xx6。私はWiresharkのキャプチャを見て、確かに、プライベートプライベートIPアドレスにTCPパッケージが失敗しました。

ここで、spark.driver.bindAddressをマスターからローカルIPアドレスspark.driver.hostをマスターからパブリックIPアドレスに設定すると、次のメッセージが表示されます。

ERROR TaskSchedulerImpl: myhostname.singnet.com.sgで失われたエグゼキュータ1:、私の理解からspark.driver.bindAddressを

:原因 にexecutorを作成できません要求されたアドレスを割り当てることができません。マスタとスレーブの両方に設定してください。したがって、スレーブは上記のエラーを受け取ります。 パブリックIP経由でこのクラスタリングを正しく動作させるにはどうすればよいでしょうか?

答えて

0

すべてのプライベートセットアップまたはすべてのパブリックセットアップをお勧めします。国境ではない。

一般的にすべてをプライベートにする必要があり、外部に公開するデータが必要な場合は、データエンドポイントを公開IPに公開するだけです。例:すべてのスパークジョブを実行し、S3にデータを保存します。次に、バケット上でS3の公開アクセスを有効にします。プライベートIPの使用は一般的により安全です。

mesosマスターの--advertise-ipパラメータについてそれは、メソスの奴隷がメソスのマスターを見つけるためのものです。そこで起こる問題は、公的な、私的な組み合わせをサポートしていないので、あなたはどちらか一方をしなければならないでしょう。パブリックIPに接続するmesosマシンでsparkワークロードを実行することはできますが、それはそれらのマシンに対してアクセス可能なzookeeperなどが必要であることを意味します。

+0

お返事ありがとうございます。私のネットワークの知識がある限り、私はすべてのパブリックセットアップを行うことができるシナリオはありません。パブリックIPアドレスに公開されるすべてのマシンには、内部ネットワークのプライベートアドレスが割り当てられます。パブリックIPはマシン自体ではなく、ルータ上にあります(私が間違っている場合は私を修正してください)。 メゾスは--advertise_IPパラメータを含めることでこの問題を解決し、マシンはこのアドレス(公開されている)に接続してお互いを見つけることができます。 Sparkでどのように実装されているのかよく分かりません。 – TheCyberliem

+0

@ TheCyber​​liem確かに。私の回答に加えて、 – Rico

+0

を確認してください。しかし、私の問題の記述を注意深く読んだ場合、プライベートIPなしですべてのパブリック設定を行うことができないことがわかります(前述したように、パブリックIPはマシン上ではなくルータ上にあるので、ルータはパブリックIPにマップします)。 – TheCyberliem

関連する問題