2017-01-05 10 views
0

を使用するには、次のように私はspark.executor.extraJavaOptionsでJMX構成を設定しています:スパーク:糸コンテナ同じマシン上で複数のJMXポート

-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.rmi.port=9999 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.local.only=false. 

私はエグゼキュータとドライバのJVMを監視したかったです。しかし、私の問題は、複数のコンテナ/エグゼキュータをクラスタ内の1つのノードで起動できることです。だから私は港の紛争が起こると信じています。このシナリオを処理するソリューションはありますか、またはJMX設定のポートの範囲について言及することができますので、エグゼキュータが空きポートを取得します。

答えて

0

sun.management.jmxremote.port=0を設定すると、JVMはエフェメラルポートを割り当てます。

これで、JVMで開いたポートを検索する必要があります。 jpsコマンドを実行してプロセスを一覧表示します。そこにPIDが表示され、次のステップはプロセスがリッスンしているポートを探すことです。lsofコマンドを使用してください。

lsof -p <PID> | grep LISTEN 

これまでに試してみたことがないかどうかを教えてください。

+0

com.sun.management.jmxremote.rmi.port = 0も作成する必要がありますか? – Alok

+1

rmi.portを0にした後、動作しています。ありがとう – Alok

関連する問題