2016-12-12 4 views
0

GoogleのDataprocを使用してComputeクラスタを作成すると、プロジェクトのクラスタ名が "MyCluster"の場合、 "MyProject-107701"となると、内部クラスタは "mycluster-mcmyproject-107701.internal"と認識されます".c"は由来していますが、nslookupの使用によって明らかになったものです)。 "mycluster-m"でnslookupを実行すると、内部IPが表示されますが、外部IPは表示されません。Dataprocで作成したGoogleクラスタの外部IPアドレスをプログラムで見つける方法は?

外部IDは、コンソールのVMページで見ることができます。しかし、私はこれをプログラマチックに(Javaを使用して、htmlページをスクラップしないで)入手する方法がわかりません。

私はクラスタを作成し、IPアドレスを外部プロセスに戻したいとします。外部プロセスに接続しますが、gsutilを使用して接続する必要はありません。どうすればいい? Dataproc Java APIを使用して外部IPアドレスを取得することは可能ですか?

答えて

1

2つのAPIを組み合わせて使用​​できます。 makeの最初の呼び出しは、Dataproc APIにクラスターのマスターノードの確定リストを取得することです。これはclusters.getで行い、マスターノード名はcluster.config.masterConfig.instanceNamesから抽出できます。

マスター名インスタンス名を取得したら、Compute Engine APIをget the GCE Instanceに、GCEインスタンスをnetworkInterfaces[0].accessConfig.natIPに、それぞれ使用できます。

+0

ありがとう、アンガス。万一、この呼び出しに対応するJavaライブラリがありますか?このページは、新しいCompute.Builderを呼び出すコードを参照します。 https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/google-cloud-compute/src/main/java/com/google/cloud/computeここでその方法が見つかったと思います。 /Compute.java、しかし私はそれを見ませんでした。これは適切なJavaライブラリですか? (おそらく、私は何か、あるいはそれ以外のドキュメントがありませんか?) –

+0

Compute.Builderは、maven central(compute)から利用可能な自動生成ライブラリへの参照です。http://search.maven.org/#artifactdetails% 7Ccom.google.apis%7Cgoogle-api-services-compute%7Cv1-rev131-1.22.0%7Cjarとdataproc:http://search.maven.org/#artifactdetails%7Ccom.google.apis%7Cgoogle-api-services -dataproc%7Cv1-rev10-1.22.0%7Cjar –

+0

申し訳ありませんが、先ほど参照したgithubのライブラリを使用しました。コードはページに表示されるドキュメントと多少異なる場合がありますが、機能は同じであるようです。私は無関係なブロッキング問題があるので、私はまだ私の修正を確認することはできませんが、私は、それが動作すれば、私はこの答えを受け入れてマークします。 –

関連する問題