Sebelum memulai
Jika Anda belum melakukannya, siapkan Google Cloud project dan dua (2) bucket Cloud Storage.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, Cloud Storage, and Cloud Run functions APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, Cloud Storage, and Cloud Run functions APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
Buat atau gunakan dua bucket Cloud Storage di project Anda
Anda memerlukan dua bucket Cloud Storage di project Anda: satu untuk file input dan satu lagi untuk output.
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik Create.
- Di halaman Buat bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke
langkah berikutnya, klik Lanjutkan.
-
Di bagian Mulai, lakukan tindakan berikut:
- Masukkan nama yang unik secara global yang memenuhi persyaratan penamaan bucket.
- Untuk menambahkan
label bucket,
luaskan bagian Label (),
klik add_box
Tambahkan label, lalu tentukan
keydanvalueuntuk label Anda.
-
Di bagian Pilih tempat untuk menyimpan data Anda, lakukan tindakan berikut:
- Pilih Jenis lokasi.
- Pilih lokasi tempat data bucket Anda disimpan secara permanen dari menu drop-down Location type.
- Jika memilih jenis lokasi dual-region, Anda juga dapat memilih untuk mengaktifkan replikasi turbo dengan menggunakan kotak centang yang relevan.
- Untuk menyiapkan replikasi lintas bucket, pilih
Add cross-bucket replication via Storage Transfer Service dan
ikuti langkah-langkah berikut:
Menyiapkan replikasi lintas bucket
- Di menu Bucket, pilih bucket.
Di bagian Setelan replikasi, klik Konfigurasi untuk mengonfigurasi setelan bagi tugas replikasi.
Panel Konfigurasi replikasi lintas bucket akan muncul.
- Untuk memfilter objek yang akan direplikasi menurut awalan nama objek, masukkan awalan yang ingin Anda sertakan atau kecualikan objeknya, lalu klik Tambahkan awalan.
- Untuk menetapkan kelas penyimpanan bagi objek yang direplikasi, pilih kelas penyimpanan dari menu Kelas penyimpanan. Jika Anda melewati langkah ini, objek yang direplikasi akan menggunakan kelas penyimpanan bucket tujuan secara default.
- Klik Done.
-
Di bagian Choose how to store your data, lakukan tindakan berikut:
- Pilih kelas penyimpanan default untuk bucket atau Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.
- Untuk mengaktifkan namespace hierarkis, di bagian Optimalkan penyimpanan untuk beban kerja intensif data, pilih Aktifkan namespace hierarkis di bucket ini.
- Di bagian Pilih cara mengontrol akses ke objek, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih metode kontrol akses untuk objek bucket Anda.
-
Di bagian Pilih cara melindungi data objek, lakukan
tindakan berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
- Untuk mengaktifkan penghapusan sementara, klik kotak centang Kebijakan penghapusan sementara (Untuk pemulihan data), dan tentukan jumlah hari Anda ingin mempertahankan objek setelah penghapusan.
- Untuk menyetel Pembuatan Versi Objek, klik kotak centang Pembuatan versi objek (Untuk kontrol versi), dan tentukan jumlah maksimum versi per objek dan jumlah hari setelah versi lama berakhir.
- Untuk mengaktifkan kebijakan retensi pada objek dan bucket, klik kotak centang Retensi (Untuk kepatuhan), lalu lakukan hal berikut:
- Untuk mengaktifkan Penguncian Retensi Objek, centang kotak Aktifkan retensi objek.
- Untuk mengaktifkan Bucket Lock, centang kotak Setel kebijakan retensi bucket, lalu pilih satuan waktu dan durasi untuk periode retensi data Anda.
- Untuk memilih cara mengenkripsi data objek Anda, luaskan bagian Enkripsi data (), lalu pilih metode Enkripsi data.
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
-
Di bagian Mulai, lakukan tindakan berikut:
- Klik Create.
Buat template workflow
Untuk membuat dan menentukan template alur kerja, salin dan jalankan perintah berikut di jendela terminal lokal atau di Cloud Shell.
- Buat template alur kerja.
gcloud dataproc workflow-templates create wordcount-template \ --region=us-central1
- Tambahkan tugas penghitungan jumlah kata ke template alur kerja.
-
Tentukan output-bucket-name Anda sebelum menjalankan
perintah (fungsi Anda akan menyediakan bucket input).
Setelah Anda memasukkan output-bucket-name, argumen
bucket output akan terbaca sebagai berikut:
gs://your-output-bucket/wordcount-output". -
ID langkah "count"
diperlukan, dan mengidentifikasi tugas Hadoop yang ditambahkan.
gcloud dataproc workflow-templates add-job hadoop \ --workflow-template=wordcount-template \ --step-id=count \ --jar=file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \ --region=us-central1 \ -- wordcount gs://input-bucket gs://output-bucket-name/wordcount-output
-
Tentukan output-bucket-name Anda sebelum menjalankan
perintah (fungsi Anda akan menyediakan bucket input).
Setelah Anda memasukkan output-bucket-name, argumen
bucket output akan terbaca sebagai berikut:
- Gunakan cluster
terkelola,
node tunggal
untuk menjalankan alur kerja. Managed Service for Apache Spark akan membuat
cluster, menjalankan alur kerja di cluster tersebut, lalu menghapus cluster saat alur kerja selesai.
gcloud dataproc workflow-templates set-managed-cluster wordcount-template \ --cluster-name=wordcount \ --single-node \ --region=us-central1 - Klik nama
wordcount-templatedi halaman Managed Service for Apache Spark Workflows di konsol Google Cloud untuk membuka halaman Workflow template details. Konfirmasi atribut wordcount-template.
Membuat parameter template alur kerja
Parameterkan variabel bucket input untuk diteruskan ke template alur kerja.
- Ekspor template alur kerja ke file teks
wordcount.yamluntuk parameterisasi.gcloud dataproc workflow-templates export wordcount-template \ --destination=wordcount.yaml \ --region=us-central1
- Dengan menggunakan editor teks, buka
wordcount.yaml, lalu tambahkan blokparameterske akhir file YAML sehingga INPUT_BUCKET_URI Cloud Storage dapat diteruskan sebagaiargs[1]ke biner wordcount saat alur kerja dipicu.Contoh file YAML yang diekspor ditampilkan di bawah. Anda dapat menggunakan salah satu dari dua pendekatan berikut untuk memperbarui template:
- Salin lalu tempel seluruh file untuk menggantikan
wordcount.yamlyang diekspor setelah mengganti your-output_bucket dengan nama bucket output Anda, ATAU - Salin, lalu tempel hanya bagian
parameterske bagian akhir filewordcount.yamlyang diekspor.
jobs: - hadoopJob: args: - wordcount - gs://input-bucket - gs://your-output-bucket/wordcount-output mainJarFileUri: file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar stepId: count placement: managedCluster: clusterName: wordcount config: softwareConfig: properties: dataproc:dataproc.allow.zero.workers: 'true' parameters: - name: INPUT_BUCKET_URI description: wordcount input bucket URI fields: - jobs['count'].hadoopJob.args[1] - Salin lalu tempel seluruh file untuk menggantikan
- Impor file teks
wordcount.yamlyang diparameterkan. Ketik 'Y'a saat diminta untuk menimpa template.gcloud dataproc workflow-templates import wordcount-template \ --source=wordcount.yaml \ --region=us-central1
Membuat Cloud Function
Buka halaman Cloud Run functions di konsolGoogle Cloud , lalu klik CREATE FUNCTION.
Di halaman Create function, masukkan atau pilih informasi berikut:
- Nama: jumlah kata
- Memori yang dialokasikan: Pertahankan pilihan default.
- Pemicu:
- Cloud Storage
- Jenis Peristiwa: Selesaikan/Buat
- Bucket: Pilih bucket input Anda (lihat Membuat bucket Cloud Storage di project Anda). Saat file ditambahkan ke bucket ini, fungsi akan memicu alur kerja. Alur kerja akan menjalankan aplikasi wordcount, yang akan memproses semua file teks dalam bucket.
Kode sumber:
- Editor inline
- Runtime: Node.js 8
- Tab
INDEX.JS: Ganti cuplikan kode default dengan kode berikut, lalu edit barisconst projectIduntuk memberikan -your-project-id- (tanpa "-" di awal atau akhir).
const dataproc = require('@google-cloud/dataproc').v1; exports.startWorkflow = (data) => { const projectId = '-your-project-id-' const region = 'us-central1' const workflowTemplate = 'wordcount-template' const client = new dataproc.WorkflowTemplateServiceClient({ apiEndpoint: `${region}-dataproc.googleapis.com`, }); const file = data; console.log("Event: ", file); const inputBucketUri = `gs://${file.bucket}/${file.name}`; const request = { name: client.projectRegionWorkflowTemplatePath(projectId, region, workflowTemplate), parameters: {"INPUT_BUCKET_URI": inputBucketUri} }; client.instantiateWorkflowTemplate(request) .then(responses => { console.log("Launched Dataproc Workflow:", responses[1]); }) .catch(err => { console.error(err); }); };- Tab
PACKAGE.JSON: Ganti cuplikan kode default dengan kode berikut.
{ "name": "dataproc-workflow", "version": "1.0.0", "dependencies":{ "@google-cloud/dataproc": ">=1.0.0"} }- Fungsi yang akan dieksekusi: Masukkan: "startWorkflow".
Klik BUAT.
Menguji fungsi
Salin file publik
rose.txtke bucket Anda untuk memicu fungsi. Masukkan your-input-bucket-name (bucket yang digunakan untuk memicu fungsi Anda) dalam perintah.gcloud storage cp gs://pub/shakespeare/rose.txt gs://your-input-bucket-name
Tunggu 30 detik, lalu jalankan perintah berikut untuk memverifikasi bahwa fungsi berhasil diselesaikan.
gcloud functions logs read wordcount
... Function execution took 1348 ms, finished with status: 'ok'
Untuk melihat log fungsi dari halaman daftar Functions di konsol Google Cloud , klik nama fungsi
wordcount, lalu klik LIHAT LOG di halaman Function details.
Anda dapat melihat folder
wordcount-outputdi bucket output dari halaman Storage browser di konsolGoogle Cloud .
Setelah alur kerja selesai, detail tugas akan tetap ada di konsolGoogle Cloud . Klik tugas
count...yang tercantum di halaman Tugas Managed Service for Apache Spark untuk melihat detail tugas alur kerja.
Pembersihan
Alur kerja dalam tutorial ini menghapus cluster terkelolanya saat alur kerja selesai. Untuk menghindari biaya berulang, Anda dapat menghapus resource lain yang terkait dengan tutorial ini.
Menghapus project
- Di Konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus bucket Cloud Storage
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik kotak centang untuk bucket yang ingin Anda dihapus.
- Untuk menghapus bucket, klik Hapus, lalu ikuti petunjuk.
Menghapus template alur kerja Anda
gcloud dataproc workflow-templates delete wordcount-template \ --region=us-central1
Menghapus Cloud Function
Buka halaman Cloud Run functions di
konsol Google Cloud , pilih kotak di sebelah kiri fungsi wordcount,
lalu klik Delete.
Langkah berikutnya
- Lihat Ringkasan template alur kerja Managed Service for Apache Spark.
- Lihat Solusi penjadwalan alur kerja.