すべてのジョブが完了したら、自動的にGoogle DataProcクラスタを自動的にシャットダウンできますか?すべてのジョブが完了したらGoogle DataProcクラスタを自動的にシャットダウンします
DataProcは、作成、監視 と管理(https://cloud.google.com/dataproc/docs/resources/faq)を提供します。しかし、私はクラスタを削除する方法を見つけるように見えることはできません。
すべてのジョブが完了したら、自動的にGoogle DataProcクラスタを自動的にシャットダウンできますか?すべてのジョブが完了したらGoogle DataProcクラスタを自動的にシャットダウンします
DataProcは、作成、監視 と管理(https://cloud.google.com/dataproc/docs/resources/faq)を提供します。しかし、私はクラスタを削除する方法を見つけるように見えることはできません。
ありautoにプログラム可能ないくつかの方法は、クラスタをシャットダウンします。
gcloud
CLIを呼び出しs)の実行を終了します。
は、ここで詳細を参照してください。 https://cloud.google.com/dataproc/docs/guides/manage-cluster#delete_a_cluster
あなたはそのScalaのコードで行うことができます。 - クラスタ の作成 - ジョブはあなたがスカラ座で作業ができることを行うには、削除クラスタ
を終了 - すべてのジョブ を実行します未来。 多くのジョブをお持ちの場合は、並列に実行することができます。
val gcpJarBucket = "gs://test_dataproc/dataproc/Dataproc.jar"
val jobs = Seq("package.class1","package.class2")
val projectName: String = "automat-dataproc"
val clusterName: String = "your-cluster-name"
val timeout = 180 minute
// Working directory
implicit val wd = pwd
val future = Future {
println("Creating the spark cluster...")
% gcloud("dataproc", "clusters", "create", clusterName, "--subnet", "default", "--zone", "europe-west1-b", "--master-machine-type", "n1-standard-4", "--master-boot-disk-size", "50", "--num-workers", "3", "--worker-machine-type", "n1-standard-4", "--worker-boot-disk-size", "50", "--project", projectName)
println("Creating the spark cluster...DONE")
}.flatMap { _ => {
Future.sequence {
jobs.map { jobClass =>
Future {
println(s"Launching the spark job from the class $jobClass...")
% gcloud("dataproc", "jobs", "submit", "spark", s"--cluster=$clusterName", s"--class=$jobClass", "--region=global", s"--jars=$gcpJarBucket")
println(s"Launching the spark job from the class $jobClass...DONE")
}
}
}
}}
Try{ Await.ready(future, timeout) }.recover{ case exp => println(exp) }
% bash("-c", s"printf 'Y\n' | gcloud dataproc cl
このタスクを完全に自動化したいと思います。だから、ここでジョブが実行を終了するときに通知を受ける方法は?ジョブ完了のコールバック/通知が取得されると、REST APIを使用してクラスタを削除できます。 –
再度、REST APIを使用します。具体的には、ジョブリソースの 'GET'をポーリングループでラップします(https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/get)。したがって、submit> monitor> shutdown –
Ok。したがって、外部スクリプトはジョブの状態をポーリングしてからステータスに基づいて、クラスタ上で異なるアクションを実行する必要があります。自動シャットダウン機能とスケーリング機能を備えたDataProcクラスタを管理するツール/サードパーティ製ソフトウェア自動スケーリングにも同じ問題が存在するためです。 DataFlowは自動スケーリングを単独で処理します。 –