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 biaya dengan menonaktifkan cluster saat tidak diperlukan. 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 telah diinstal sebelumnya).
  • Cara mengirimkan tugas Spark
  • Cara mengubah ukuran cluster
  • Cara melakukan 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. Aktifkan Cloud Dataproc dan Google Compute Engine API

Klik ikon menu di kiri atas layar.

2bfc27ef9ba2ec7d.png

Pilih API Manager dari menu drop-down.

408af5f32c4b7c25.png

Klik Enable APIs and Services.

a9c0e84296a7ba5b.png

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

b6adf859758d76b3.png

Di halaman Google Compute Engine, klik Enable

da5584a1cbc77104.png

Setelah diaktifkan, klik panah yang mengarah ke kiri untuk kembali.

Sekarang, telusuri "Google Cloud Dataproc API" dan aktifkan 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 menjalankan perintah gcloud Cloud SDK atau alat lain yang tersedia di instance mesin virtual.

Pilih nama cluster yang akan digunakan di lab ini:

$ CLUSTERNAME=${USER}-dplab

Mari kita mulai dengan 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 dua node pekerja, sudah cukup untuk tutorial ini. Perintah di atas mencakup opsi --zone untuk menentukan zona geografis tempat cluster akan dibuat, dan dua opsi lanjutan, --scopes dan --tags, yang dijelaskan di bawah saat Anda menggunakan fitur yang diaktifkannya. Lihat perintah Cloud SDK gcloud dataproc clusters create untuk mengetahui informasi tentang penggunaan tanda command line guna menyesuaikan setelan cluster.

6. Mengirimkan 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 menggunakan SSH, lalu menjalankan tugas dari instance.

Mari 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.

Hentikan output dengan memasukkan Control-C. Tindakan ini akan menghentikan perintah gcloud, tetapi tugas akan tetap berjalan di cluster Dataproc.

7. Mencantumkan Tugas dan Menghubungkan Kembali

Mencetak daftar tugas:

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

Tugas yang baru saja dikirimkan berada di bagian atas daftar. Salin ID tugas dan tempelkan di tempat "jobId" dalam perintah di bawah. Perintah akan terhubung kembali ke tugas yang ditentukan dan menampilkan outputnya:

$ gcloud dataproc jobs wait jobId

Setelah tugas selesai, output akan menyertakan perkiraan nilai Pi.

493928df54f61386.png

8. Mengubah Ukuran Cluster

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

Periksa konfigurasi cluster:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

Buat cluster yang lebih besar dengan menambahkan beberapa node yang dapat dihentikan:

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

Periksa cluster lagi:

$ gcloud dataproc clusters describe ${CLUSTERNAME}

Perhatikan bahwa selain workerConfig dari deskripsi cluster asli, kini ada juga secondaryWorkerConfig yang mencakup dua instanceNames untuk worker yang dapat di-preempt. Dataproc menampilkan status cluster sebagai siap saat node baru sedang melakukan booting.

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

9. SSH ke Cluster

Hubungkan melalui SSH ke node master, yang nama instancenya selalu berupa nama cluster dengan -m yang ditambahkan:

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

Saat pertama kali menjalankan perintah ssh di Cloud Shell, perintah tersebut akan membuat 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 Anda mau.

Di instance, periksa nama host:

$ hostname

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

$ gcloud dataproc clusters list

Keluar dari koneksi SSH setelah Anda selesai:

$ logout

10. Memeriksa tag

Saat membuat cluster, Anda menyertakan opsi --tags untuk menambahkan tag ke setiap node di 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 bahwa output tersebut menyertakan codelab.

Mencetak aturan firewall:

$ gcloud compute firewall-rules list

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

11. Mematikan cluster

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

Mari kita nonaktifkan cluster menggunakan command line Cloud Shell:

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

12. Selamat!

Anda telah mempelajari cara membuat cluster Dataproc, mengirimkan 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 Umum Creative Commons Attribution 3.0, dan lisensi Apache 2.0.