Cluster Dataproc dapat disediakan dengan image kustom yang berisi paket yang telah diinstal sebelumnya oleh pengguna. Langkah berikut menjelaskan cara membuat image kustom dan menginstalnya di cluster Dataproc.
Catatan:
- Petunjuk dalam dokumen ini hanya berlaku untuk sistem operasi Linux. Sistem operasi lain mungkin didukung dalam rilis Dataproc mendatang.
- Build image kustom memerlukan mulai dari image dasar Dataproc (image dasar Debian, Rocky Linux, dan Ubuntu didukung).
- Menggunakan komponen opsional: Secara default, image kustom mewarisi semua
komponen opsional Dataproc
(paket dan konfigurasi OS) dari image dasarnya. Anda dapat
menyesuaikan versi dan konfigurasi paket OS default, tetapi Anda harus menentukan
nama komponen opsional saat membuat cluster (misalnya,
dengan menjalankan
perintah
gcloud dataproc clusters create --optional-components=COMPONENT_NAME
—lihat Menambahkan komponen opsional). Jika nama komponen tidak ditentukan saat Anda membuat cluster, komponen (termasuk paket dan konfigurasi OS kustom) akan dihapus.
Sebelum memulai
Menyiapkan project
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Dataproc API, Compute Engine API, and Cloud Storage.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Dataproc API, Compute Engine API, and Cloud Storage.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
- Menginstal Python 3.11+
- Siapkan skrip penyesuaian yang menginstal paket kustom dan/atau
konfigurasi update, misalnya:
#! /usr/bin/bash apt-get -y update apt-get install python-dev apt-get install python-pip pip install numpy
Membuat bucket Cloud Storage di project Anda
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
- Klik Buat bucket.
- Di halaman Buat bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke
langkah berikutnya, klik Lanjutkan.
- Untuk Beri nama bucket, masukkan nama yang memenuhi persyaratan penamaan bucket.
-
Untuk Pilih tempat untuk menyimpan data, lakukan tindakan berikut:
- Pilih opsi Jenis lokasi.
- Pilih opsi Lokasi.
- Untuk Memilih kelas penyimpanan default untuk data Anda, pilih kelas penyimpanan.
- Untuk Memilih cara mengontrol akses ke objek, pilih opsi Kontrol akses.
- Untuk Setelan lanjutan (opsional), tentukan metode enkripsi, kebijakan retensi, atau label bucket.
- Klik Buat.
Membuat gambar kustom
Anda akan menggunakan generate_custom_image.py, program Python untuk membuat image kustom Dataproc.
Cara kerjanya
Program generate_custom_image.py
meluncurkan instance VM Compute Engine sementara dengan image dasar Dataproc yang ditentukan, lalu menjalankan skrip penyesuaian di dalam instance VM untuk menginstal paket kustom dan/atau memperbarui konfigurasi. Setelah selesai, skrip penyesuaian akan menonaktifkan instance VM dan membuat image kustom Dataproc dari disk instance VM. VM sementara akan dihapus setelah image kustom dibuat. Gambar kustom disimpan dan dapat digunakan untuk membuat cluster Dataproc.
Program generate_custom_image.py
menggunakan gcloud CLI untuk menjalankan alur kerja multi-langkah di Compute Engine.
Menjalankan kode
Lakukan fork atau clone file di GitHub di image kustom Dataproc.
Kemudian, jalankan program generate_custom_image.py
agar Dataproc membuat dan menyimpan gambar kustom.
python3 generate_custom_image.py \ --image-name=CUSTOM_IMAGE_NAME \ [--family=CUSTOM_IMAGE_FAMILY_NAME] \ --dataproc-version=IMAGE_VERSION \ --customization-script=LOCAL_PATH \ --zone=ZONE \ --gcs-bucket=gs://BUCKET_NAME \ [--no-smoke-test]
Tanda yang diperlukan
--image-name
: nama output untuk gambar kustom Anda. Catatan: nama gambar harus cocok dengan ekspresi reguler[a-z](?:[-a-z0-9]{0,61}[a-z0-9])
— misalnya, tanpa garis bawah atau spasi, kurang dari 64 karakter.--dataproc-version
: versi image Dataproc untuk digunakan dalam image kustom Anda. Tentukan versi dalam format "x.y.z-os" atau "x.y.z-rc-os", misalnya, "2.0.69-debian10".--customization-script
: jalur lokal ke skrip yang akan dijalankan alat untuk menginstal paket kustom atau melakukan penyesuaian lainnya. Perlu diperhatikan bahwa skrip ini hanya dijalankan pada VM sementara yang digunakan untuk membuat image kustom. Anda dapat menentukan skrip inisialisasi yang berbeda untuk tindakan inisialisasi lain yang ingin dilakukan saat membuat cluster dengan image kustom.--zone
: zona Compute Engine tempatgenerate_custom_image.py
akan membuat VM sementara yang akan digunakan untuk membuat image kustom.--gcs-bucket
: URI, dalam formatgs://BUCKET_NAME
, yang mengarah ke bucket Cloud Storage yang Anda buat di bagian Membuat bucket Cloud Storage di project Anda.generate_custom_image.py
akan menulis file log ke bucket ini.
Tanda opsional
--family
: kelompok gambar untuk gambar. Kelompok gambar digunakan untuk mengelompokkan gambar yang mirip, dan dapat digunakan saat membuat cluster sebagai pointer ke gambar terbaru dalam kelompok gambar tersebut. Misalnya, "custom-1-5-debian10".--no-smoke-test
: Ini adalah flag opsional yang menonaktifkan pengujian asap pada image kustom yang baru dibuat. Uji asap membuat cluster pengujian Dataproc dengan image yang baru di-build, menjalankan tugas kecil, lalu menghapus cluster tersebut di akhir pengujian. Pengujian asap berjalan secara default untuk memverifikasi bahwa image kustom yang baru di-build dapat membuat cluster Dataproc yang fungsional. Menonaktifkan langkah ini menggunakan tanda--no-smoke-test
akan mempercepat proses build image kustom, tetapi penggunaannya tidak direkomendasikan.--subnet
: Subnetwork yang akan digunakan untuk membuat VM yang membangun image Dataproc kustom. Jika project Anda adalah bagian dari VPC bersama, Anda harus menentukan URL subnetwork lengkap dalam format berikut:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
.
Untuk listingan tanda opsional tambahan, lihat Argumen Opsional di GitHub.
Jika generate_custom_image.py
berhasil, imageURI
gambar kustom akan
tercantum dalam output jendela terminal (imageUri
lengkapnya ditampilkan dalam tebal di bawah):
... managedCluster: clusterName: verify-image-20180614213641-8308a4cd config: gceClusterConfig: zoneUri: ZONE masterConfig: imageUri: https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME ... INFO:__main__:Successfully built Dataproc custom image: CUSTOM_IMAGE_NAME INFO:__main__: ##################################################################### WARNING: DATAPROC CUSTOM IMAGE 'CUSTOM_IMAGE_NAME' WILL EXPIRE ON 2018-07-14 21:35:44.133000. #####################################################################
Label versi gambar kustom untuk pengguna tingkat lanjut
Saat menggunakan alat gambar kustom standar Dataproc, alat tersebut secara otomatis menetapkan label goog-dataproc-version
yang diperlukan pada gambar kustom yang dibuat. Label ini mencerminkan kemampuan fitur dan protokol yang digunakan oleh Dataproc untuk mengelola software pada image.
Pengguna tingkat lanjut yang menggunakan proses mereka sendiri untuk membuat gambar Dataproc kustom harus menambahkan label secara manual ke gambar kustom mereka, sebagai berikut:
Ekstrak label
goog-dataproc-version
dari image Dataproc dasar yang digunakan untuk membuat image kustom.gcloud compute images describe ${BASE_DATAPROC_IMAGE} \ --project cloud-dataproc \ --format="value(labels.goog-dataproc-version)"
Menetapkan label pada gambar kustom.
gcloud compute images add-labels IMAGE_NAME --labels=[KEY=VALUE,...]
Menggunakan gambar kustom
Anda menetapkan gambar kustom saat membuat cluster Dataproc. Image kustom disimpan di Image Cloud Compute, dan berlaku untuk membuat cluster Dataproc selama 365 hari sejak tanggal pembuatannya (lihat Cara membuat cluster dengan image kustom yang sudah tidak berlaku untuk menggunakan image kustom setelah tanggal habis masa berlakunya 365 hari).
URI gambar kustom
Anda meneruskan imageUri
gambar kustom ke operasi pembuatan cluster.
URI ini dapat ditetapkan dengan salah satu dari tiga cara berikut:
- URI lengkap:
https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/`gs://`BUCKET_NAME`
- URI Sebagian:
projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME
- Nama pendek: CUSTOM_IMAGE_NAME
Gambar kustom juga dapat ditentukan berdasarkan URI jenisnya, yang selalu memilih gambar terbaru dalam kelompok gambar.
- URI lengkap:
https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME/var>
- URI Sebagian:
projects/PROJECT_ID/global/images/family/CUSTOM_IMAGE_FAMILY_NAME
Cara menemukan URI gambar kustom
Perintah gcloud
Jalankan perintah gcloud
berikut untuk menampilkan nama image kustom Anda:
gcloud compute images list
Teruskan nama image kustom Anda ke perintah gcloud
berikut untuk menampilkan daftar URI (selfLink
) gambar kustom Anda:
gcloud compute images describe custom-image-name
... name: CUSTOM_IMAGE_NAME selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME ...
Konsol
- Buka halaman Compute Engine→Images di Konsol Google Cloud, lalu klik nama image. Anda dapat menyisipkan kueri di kotak teks gambar filter untuk membatasi jumlah gambar yang ditampilkan.
- Halaman detail Gambar akan terbuka. Klik Equivalent REST.
- Respons REST mencantumkan informasi tambahan tentang gambar, termasuk
selfLink
, yang merupakan URI gambar.{ ... "name": "my-custom-image", "selfLink": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME", "sourceDisk": ..., ... }
Membuat cluster dengan gambar kustom
Anda dapat membuat cluster dengan node master dan worker yang menggunakan gambar kustom dengan alat command line gcloud
, Dataproc API, atau konsol Google Cloud.
Perintah gcloud
Anda dapat membuat cluster Dataproc dengan gambar kustom menggunakan perintah create cluster dataproc dengan flag--image
.
Contoh:
gcloud dataproc clusters create CLUSTER-NAME \ --image=CUSTOM_IMAGE_URI \ --region=REGION \ ... other flags ...
REST API
Anda dapat membuat cluster menggunakan gambar kustom dengan menentukan URI gambar kustom di kolom InstanceGroupConfig.imageUri dimasterConfig
, workerConfig
, dan, jika berlaku,
objek secondaryWorkerConfig
yang disertakan dalam
permintaan API
cluster.create.
Contoh: Permintaan REST untuk membuat cluster Dataproc standar (satu master, dua worker node) dengan gambar kustom.
POST /v1/projects/PROJECT_ID/regions/REGION/clusters/ { "clusterName": "CLUSTER_NAME", "config": { "masterConfig": { "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME" }, "workerConfig": { "imageUri": "projects/PROJECT_ID/global/images/CUSTOM_IMAGE_NAME" } } }
Konsol
- Di konsol Google Cloud, buka halaman Create a cluster pada Dataproc. Panel Siapkan cluster dipilih.
- Di bagian Pembuatan Versi, klik UBAH. Pilih tab GAMBAR KUSTOM, pilih gambar kustom yang akan digunakan untuk cluster Dataproc Anda, lalu klik PILIH.
Saat Anda mengirimkan formulir Create a cluster, VM cluster Anda akan disediakan dengan image kustom yang dipilih.
Mengganti properti cluster Dataproc dengan gambar kustom
Anda dapat menggunakan image kustom untuk menimpa properti cluster yang ditetapkan selama pembuatan cluster. Jika pengguna membuat cluster dengan gambar kustom Anda, tetapi menetapkan properti cluster yang berbeda dari yang ditetapkan dengan gambar kustom, setelan properti cluster gambar kustom Anda akan lebih diutamakan.
Untuk menetapkan properti cluster dengan gambar kustom:
- Di skrip penyesuaian gambar kustom Anda, buat file
dataproc.custom.properties
di/etc/google-dataproc
, lalu tetapkan nilai properti cluster dalam file tersebut.- Contoh konten file
dataproc.custom.properties
:dataproc.conscrypt.provider.enable=VALUE dataproc.logging.stackdriver.enable=VALUE
- Contoh konten file
Contoh cuplikan pembuatan file skrip penyesuaian untuk mengganti dua properti cluster:
cat <<EOF >/etc/google-dataproc/dataproc.custom.properties dataproc.conscrypt.provider.enable=true dataproc.logging.stackdriver.enable=false EOF
Cara membuat cluster dengan gambar kustom yang sudah tidak berlaku
Secara default, masa berlaku gambar kustom akan berakhir 365 hari sejak tanggal pembuatan gambar. Anda dapat membuat cluster yang menggunakan image kustom yang sudah tidak berlaku dengan menyelesaikan langkah-langkah berikut.
Coba buat cluster Dataproc dengan gambar kustom yang masa berlakunya sudah habis atau gambar kustom yang akan habis masa berlakunya dalam waktu 10 hari.
gcloud dataproc clusters create CLUSTER-NAME \ --image=CUSTOM-IMAGE-NAME \ --region=REGION \ ... other flags ...
Gcloud CLI akan mengeluarkan pesan error yang menyertakan nama properti
dataproc:dataproc.custom.image.expiration.token
cluster dan nilai token. Salin string "nilai token" ke papan klip.dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE
Gunakan gcloud CLI untuk membuat cluster Dataproc lagi, dengan menambahkan "nilai token" yang disalin di atas sebagai properti cluster.
gcloud dataproc clusters create CLUSTER-NAME \ --image=CUSTOM-IMAGE-NAME \ --properties=dataproc:dataproc.custom.image.expiration.token=TOKEN_VALUE \ --region=REGION \ ... other flags ...
Pembuatan cluster dengan gambar kustom akan berhasil.