.
Kebijakan keamanan organisasi, aturan kepatuhan terhadap peraturan, dan pertimbangan lainnya dapat meminta Anda untuk "merotasi" cluster Dataproc secara berkala dengan menghapus, lalu membuat ulang cluster sesuai jadwal. Sebagai bagian dari rotasi cluster, cluster baru dapat disediakan dengan versi image Dataproc terbaru, sekaligus mempertahankan setelan konfigurasi dari cluster yang diganti.
Halaman ini menunjukkan cara menyiapkan cluster yang akan dirotasi ("cluster dirotasi"), mengirim tugas ke cluster, lalu merotasi cluster sesuai kebutuhan.
Rotasi cluster gambar kustom: Anda dapat menerapkan penyesuaian sebelumnya atau baru ke gambar dasar Dataproc sebelumnya atau yang baru saat membuat ulang cluster gambar kustom.
Menyiapkan cluster yang dirotasi
Untuk menyiapkan cluster yang dirotasi, buat nama cluster yang unik dengan stempel waktu
untuk membedakan cluster lama dengan cluster baru, lalu berikan label ke cluster
yang menunjukkan apakah cluster merupakan bagian dari kumpulan cluster yang dirotasi dan secara aktif
menerima kiriman tugas baru. Contoh ini menggunakan label cluster-pool
dan cluster-state=active
untuk tujuan ini, tetapi Anda dapat menggunakan nama label Anda sendiri.
Menetapkan variabel lingkungan:
PROJECT=project ID \ REGION=region \ CLUSTER_POOL=cluster-pool-name \ CLUSTER_NAME=$CLUSTER_POOL-$(date '+%Y%m%d%H%M') \ BUCKET=Cloud Storage bucket-name
Catatan:
- cluster-pool-name: Nama kumpulan cluster yang terkait dengan
satu atau beberapa cluster. Nama ini digunakan pada nama cluster dan dengan label
cluster-pool
yang dilampirkan ke cluster untuk mengidentifikasi cluster sebagai bagian dari kumpulan.
- cluster-pool-name: Nama kumpulan cluster yang terkait dengan
satu atau beberapa cluster. Nama ini digunakan pada nama cluster dan dengan label
Buat cluster. Anda dapat menambahkan argumen dan menggunakan label yang berbeda.
gcloud dataproc clusters create ${CLUSTER_NAME} \ --project=${PROJECT_ID} \ --region=${REGION} \ --bucket=${BUCKET} \ --labels="cluster-pool=${CLUSTER_POOL},cluster-state=active"
Mengirimkan tugas ke cluster
Contoh Google Cloud CLI dan Apache Airflow directed acyclic graph (DAG) berikut mengirimkan tugas Apache Pig ke cluster. Label cluster digunakan untuk mengirimkan tugas ke cluster aktif dalam kumpulan cluster.
gcloud
Kirimkan tugas Apache Pig yang berada di Cloud Storage. Pilih cluster menggunakan label.
gcloud dataproc jobs submit pig \ --region=${REGION} \ --file=gs://${BUCKET}/scripts/script.pig \ --cluster-labels="cluster-pool=${CLUSTER_POOL},cluster-state=active"
Airflow
Kirimkan tugas Apache Pig yang ada di Cloud Storage menggunakan Airflow. Pilih cluster menggunakan label.
from airflow import DAG from airflow.providers.google.cloud.operators.dataproc import DataprocSubmitJobOperator from datetime import datetime # Declare variables project_id=# e.g: my-project region="us-central1" dag_id='pig_wordcount' cluster_labels={"cluster-pool":${CLUSTER_POOL}, "cluster-state":"active"} wordcount_script="gs://bucket-name/scripts/wordcount.pig" # Define DAG dag = DAG( dag_id, schedule_interval=None, start_date=datetime(2023, 8, 16), catchup=False ) PIG_JOB = { "reference": {"project_id": project_id}, "placement": {"cluster_labels": cluster_labels}, "pig_job": {"query_file_uri": wordcount_script}, } wordcount_task = DataprocSubmitJobOperator( task_id='wordcount', region=region, project_id=project_id, job=PIG_JOB, dag=dag )
Putar cluster
Perbarui label cluster yang dilampirkan ke cluster yang Anda putar. Contoh ini menggunakan label
cluster-state=pendingfordeletion
untuk menandakan bahwa cluster tidak menerima tugas baru dan sedang dirotasi, tetapi Anda dapat menggunakan label Anda sendiri untuk tujuan ini.gcloud dataproc clusters update ${CLUSTER_NAME} \ --region=${REGION} \ --update-labels="cluster-state=pendingfordeletion"
Setelah label cluster diperbarui, cluster tidak akan menerima tugas baru karena tugas dikirim ke cluster dalam kumpulan cluster hanya dengan label
active
(lihat Mengirim tugas ke cluster).Hapus cluster yang Anda putar setelah selesai menjalankan tugas.