Menyediakan dan Menggunakan Cluster Hadoop/Spark Terkelola dengan Cloud Dataproc (Command Line)

1. Ringkasan

Cloud Dataproc adalah layanan Spark dan Hadoop terkelola yang memungkinkan Anda memanfaatkan alat data open source untuk batch processing, pembuatan kueri, streaming, dan machine learning. Otomatisasi Cloud Dataproc membantu Anda membuat cluster dengan cepat, mengelolanya dengan mudah, dan menghemat uang dengan menonaktifkan cluster saat Anda tidak membutuhkannya. Karena lebih sedikit waktu dan uang yang dihabiskan untuk tugas administrasi, Anda dapat berfokus pada pekerjaan dan data Anda.

Tutorial ini diadaptasi dari https://cloud.google.com/dataproc/overview

Yang akan Anda pelajari

  • Cara membuat cluster Cloud Dataproc terkelola (dengan Apache Spark yang diinstal sebelumnya).
  • Cara mengirimkan tugas Spark
  • Cara mengubah ukuran cluster
  • Cara menjalankan ssh ke node master cluster Dataproc
  • Cara menggunakan gcloud untuk memeriksa cluster, tugas, dan aturan firewall
  • Cara mematikan cluster

Yang Anda butuhkan

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?

Pemula Menengah Mahir

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau G Suite, Anda harus membuatnya.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

  1. Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.

Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

3. Mengaktifkan Cloud Dataproc dan Google Compute Engine API

Klik ikon menu di kiri atas layar.

2bfc27ef9ba2ec7d.pngS

Pilih Pengelola API dari menu drop-down.

408af5f32c4b7c25.pngS

Klik Enable APIs and Services.

a9c0e84296a7ba5b.png

Telusuri "Compute Engine" di kotak penelusuran. Klik "Google Compute Engine API" di daftar hasil yang muncul.

b6adf859758d76b3.png

Di halaman Google Compute Engine, klik Enable

da5584a1cbc77104.png

Setelah diaktifkan, klik tanda panah yang menunjuk ke kiri untuk kembali.

Sekarang telusuri "Google Cloud Dataproc API" dan mengaktifkannya juga.

f782195d8e3d732a.png

4. Mulai Cloud Shell

Mesin virtual berbasis Debian ini memuat semua alat pengembangan yang akan Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Ini berarti bahwa semua yang Anda perlukan untuk codelab ini adalah browser (ya, ini berfungsi di Chromebook).

  1. Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Aktifkan Cloud ShellfEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (hanya perlu beberapa saat untuk melakukan penyediaan dan terhubung ke lingkungan).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke PROJECT_ID.

gcloud auth list

Output perintah

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika, untuk beberapa alasan, project belum disetel, cukup jalankan perintah berikut:

gcloud config set project <PROJECT_ID>

Mencari PROJECT_ID Anda? Periksa ID yang Anda gunakan di langkah-langkah penyiapan atau cari di dasbor Cloud Console:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell juga menetapkan beberapa variabel lingkungan secara default, yang mungkin berguna saat Anda menjalankan perintah di masa mendatang.

echo $GOOGLE_CLOUD_PROJECT

Output perintah

<PROJECT_ID>
  1. Terakhir, tetapkan zona dan konfigurasi project default.
gcloud config set compute/zone us-central1-f

Anda dapat memilih berbagai zona yang berbeda. Untuk informasi selengkapnya, lihat Region & Zona.

5. Buat cluster Cloud Dataproc

Setelah Cloud Shell diluncurkan, Anda dapat menggunakan command line untuk memanggil perintah gcloud Cloud SDK atau alat lain yang tersedia di instance virtual machine.

Pilih nama cluster yang akan digunakan di lab ini:

$ CLUSTERNAME=${USER}-dplab

Mari mulai membuat cluster baru:

$ gcloud dataproc clusters create ${CLUSTERNAME} \
  --region=us-central1 \
  --scopes=cloud-platform \
  --tags codelab \
  --zone=us-central1-c

Setelan cluster default, yang mencakup node dua pekerja, seharusnya cukup untuk tutorial ini. Perintah di atas menyertakan opsi --zone untuk menentukan zona geografis tempat cluster akan dibuat, serta dua opsi lanjutan, --scopes dan --tags, yang dijelaskan di bawah saat Anda menggunakan fitur yang diaktifkannya. Lihat perintah gcloud dataproc clusters create Cloud SDK untuk mengetahui informasi tentang cara menggunakan flag command line untuk menyesuaikan setelan cluster.

6. Mengirim tugas Spark ke cluster Anda

Anda dapat mengirimkan tugas melalui permintaan jobs.submit Cloud Dataproc API, menggunakan alat command line gcloud, atau dari Konsol Google Cloud Platform. Anda juga dapat terhubung ke instance mesin di cluster Anda menggunakan SSH, lalu menjalankan tugas dari instance.

Mari kita kirimkan tugas menggunakan alat gcloud dari command line Cloud Shell:

$ gcloud dataproc jobs submit spark --cluster ${CLUSTERNAME} \
  --class org.apache.spark.examples.SparkPi \
  --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

Saat tugas berjalan, Anda akan melihat output di jendela Cloud Shell.

Interupsi {i>output<i} dengan memasukkan Control-C. Tindakan ini akan menghentikan perintah gcloud, tetapi tugas akan tetap berjalan di cluster Dataproc.

7. Membuat Daftar Tugas dan Menghubungkan Kembali

Mencetak daftar tugas:

$ gcloud dataproc jobs list --cluster ${CLUSTERNAME}

Lowongan yang terakhir dikirim ada di bagian atas daftar. Salin ID tugas dan tempelkan di tempat "jobId" pada perintah di bawah ini. Perintah tersebut akan terhubung kembali ke tugas yang ditentukan dan menampilkan output-nya:

$ gcloud dataproc jobs wait jobId

Ketika tugas selesai, output akan menyertakan perkiraan nilai Pi.

493928df54f61386.pngS

8. Ubah Ukuran Cluster

Untuk menjalankan komputasi yang lebih besar, Anda mungkin perlu menambahkan lebih banyak node ke cluster untuk mempercepatnya. Dataproc memungkinkan Anda menambahkan node ke dan menghapus node dari cluster Anda kapan saja.

Periksa konfigurasi cluster:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

Perbesar cluster dengan menambahkan beberapa node yang dapat dihentikan:

$ gcloud dataproc clusters update ${CLUSTERNAME} --num-secondary-workers=2

Periksa kembali cluster:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

Perlu diperhatikan bahwa selain workerConfig dari deskripsi cluster asli, sekarang ada juga secondaryWorkerConfig yang menyertakan dua instanceNames untuk pekerja preemptible. Dataproc akan menampilkan status cluster sebagai siap saat node baru melakukan booting.

Karena Anda memulai dengan dua node dan sekarang memiliki empat node, tugas Spark Anda akan berjalan dua kali lebih cepat.

9. SSH ke Cluster

Hubungkan melalui ssh ke node master, yang nama instance-nya selalu berupa nama cluster dengan tambahan -m:

$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c

Saat pertama kali menjalankan perintah ssh di Cloud Shell, perintah tersebut akan menghasilkan kunci ssh untuk akun Anda di sana. Anda dapat memilih frasa sandi, atau menggunakan frasa sandi kosong untuk saat ini dan mengubahnya nanti menggunakan ssh-keygen jika mau.

Pada instance, periksa nama host:

$ hostname

Karena Anda menentukan --scopes=cloud-platform saat membuat cluster, Anda dapat menjalankan perintah gcloud di cluster Anda. Buat daftar cluster dalam project Anda:

$ gcloud dataproc clusters list

Logout dari koneksi SSH setelah selesai:

$ logout

10. Memeriksa tag

Saat membuat cluster, Anda menyertakan opsi --tags untuk menambahkan tag ke setiap node dalam cluster. Tag digunakan untuk melampirkan aturan firewall ke setiap node. Anda tidak membuat aturan firewall yang cocok dalam codelab ini, tetapi Anda masih dapat memeriksa tag pada node dan aturan firewall di jaringan.

Cetak deskripsi node master:

$ gcloud compute instances describe ${CLUSTERNAME}-m --zone us-central1-c

Cari tags: di dekat akhir output dan lihat apakah itu menyertakan codelab.

Cetak aturan firewall:

$ gcloud compute firewall-rules list

Perhatikan kolom SRC_TAGS dan TARGET_TAGS. Dengan melampirkan tag ke aturan firewall, Anda dapat menentukan bahwa tag tersebut harus digunakan di semua node yang memiliki tag tersebut.

11. Mematikan cluster Anda

Anda dapat mematikan cluster melalui permintaan clusters.delete Cloud Dataproc API, dari command line menggunakan gcloud dataproc clusters delete yang dapat dieksekusi, atau dari Google Cloud Platform Console.

Mari kita matikan cluster menggunakan command line Cloud Shell:

$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1

12. Selamat!

Anda telah mempelajari cara membuat cluster Dataproc, mengirim tugas Spark, mengubah ukuran cluster, menggunakan ssh untuk login ke node master, menggunakan gcloud untuk memeriksa cluster, tugas, dan aturan firewall, serta mematikan cluster menggunakan gcloud.

Pelajari Lebih Lanjut

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Generik Creative Commons Attribution 3.0 dan Apache 2.0.