Memigrasikan Tugas Hadoop dari Lokal ke Dataproc

Panduan ini menjelaskan cara memindahkan tugas Apache Hadoop Anda ke Google Cloud (Google Cloud) menggunakan Dataproc.

Panduan ini merupakan panduan ketiga dari tiga panduan yang menjelaskan cara berpindah dari Hadoop lokal:

Menjalankan tugas Hadoop di Google Cloud

Anda dapat menggunakan Dataproc untuk menjalankan sebagian besar tugas Hadoop Anda di Google Cloud. Berikut rangkuman prosedur dasarnya:

  1. Update tugas Anda agar mengarah ke data persisten yang tersimpan di Cloud Storage.

  2. Buat cluster Dataproc untuk menjalankan tugas Anda. Cluster sekali pakai yang bersifat sementara ini disebut cluster ephemeral.

  3. Kirim tugas Anda ke cluster ephemeral.

  4. Secara opsional, pantau log tugas Anda menggunakan Cloud Logging atau Cloud Storage. Log direkam di Cloud Storage secara default dengan menggunakan bucket staging yang Anda tentukan saat membuat cluster.

  5. Periksa output tugas Anda di Cloud Storage.

  6. Setelah tugas selesai, hapus cluster.

Tugas yang didukung

Dataproc menjalankan Hadoop sehingga banyak jenis tugas yang didukung secara otomatis. Saat Anda membuat cluster dengan Dataproc, teknologi berikut akan dikonfigurasi secara default:

  • Hadoop
  • Spark
  • Hive
  • Pig

Dataproc menyediakan beberapa versi gambar mesin dengan berbagai versi software open source yang telah diinstal sebelumnya. Anda dapat menjalankan banyak tugas hanya dengan software yang telah dikonfigurasi sebelumnya pada gambar. Untuk beberapa tugas, Anda mungkin perlu menginstal paket lain. Dataproc menyediakan mekanisme yang disebut tindakan inisialisasi, yang memungkinkan Anda menyesuaikan software yang berjalan pada node cluster Anda. Anda dapat menggunakan tindakan inisialisasi untuk membuat skrip yang berjalan di setiap node saat skrip sedang dibuat.

Memperbarui lokasi data (URI)

Konektor Cloud Storage, yang telah terinstal sebelumnya di node cluster Dataproc, memungkinkan tugas Anda untuk menggunakan Cloud Storage sebagai sistem file yang kompatibel dengan Hadoop (HCFS). Simpan data di Cloud Storage agar Anda dapat memanfaatkan konektor. Jika Anda melakukannya, satu-satunya perubahan yang diperlukan pada tugas Anda adalah mengupdate URI, dengan mengganti hdfs:// dengan gs://.

Jika Anda mengatur ulang data sebagai bagian dari migrasi, catat semua jalur sumber dan tujuan agar memudahkan Anda dalam mengupdate tugas untuk bekerja dengan organisasi data baru.

Anda dapat menyimpan data di HDFS dalam cluster persisten di cloud, tetapi tindakan ini tidak disarankan. Anda dapat mempelajari lebih lanjut cara memindahkan data di panduan migrasi data.

Mengonfigurasi cluster untuk menjalankan tugas Anda

Berdasarkan pendekatan yang direkomendasikan untuk menjalankan tugas di Google Cloud, Anda membuat cluster ephemeral saat Anda membutuhkannya dan menghapusnya setelah tugas selesai. Pendekatan ini memberi Anda banyak fleksibilitas dalam mengonfigurasi cluster. Anda dapat menggunakan konfigurasi yang berbeda untuk setiap tugas atau membuat beberapa konfigurasi cluster standar yang menyajikan grup tugas.

Anda dapat menemukan langkah dasar untuk membuat cluster dalam dokumentasi Dataproc. Bagian selanjutnya menjelaskan beberapa pertimbangan konfigurasi cluster yang penting untuk membantu Anda memutuskan proses selanjutnya.

Menentukan ukuran cluster Anda

Hal pertama yang perlu dilakukan untuk menentukan cluster baru adalah dengan menentukan hardware virtual yang akan digunakan untuk cluster tersebut. Mungkin sulit untuk menghitung konfigurasi cluster yang sempurna karena setiap pekerjaan memiliki kebutuhan dan keistimewaan tersendiri. Bereksperimenlah dengan berbagai konfigurasi untuk menemukan penyiapan yang tepat untuk tugas Anda.

Saat menyiapkan cluster, Anda perlu menentukan setidaknya:

  • Jumlah node yang akan digunakan.
  • Jenis mesin virtual yang akan digunakan untuk node utama (master).
  • Jenis mesin virtual yang akan digunakan untuk worker node Anda.

Jenis node ditentukan oleh jumlah CPU virtual dan jumlah memori yang tersedia. Definisi tersebut sesuai dengan jenis mesin Compute Engine. Biasanya, Anda dapat menemukan jenis node yang sesuai dengan konfigurasi node lokal yang Anda migrasikan. Anda dapat menggunakan padanan tersebut sebagai titik awal dalam menyiapkan cluster yang serupa dengan cluster lokal. Dari sana, pendekatan terbaik adalah dengan menyesuaikan konfigurasi dan memantau dampaknya terhadap eksekusi tugas. Saat mulai mengoptimalkan konfigurasi tugas, Anda akan mulai memahami cara mengelola tugas tambahan dalam sistem Anda.

Perlu diingat bahwa Anda dapat menskalakan cluster sesuai kebutuhan sehingga Anda tidak perlu memiliki spesifikasi yang sempurna sejak awal.

Memilih opsi disk utama

Anda dapat menentukan ukuran disk utama yang digunakan oleh worker node Anda. Opsi yang tepat untuk cluster bergantung pada jenis tugas yang akan Anda jalankan. Gunakan nilai default dan evaluasi hasilnya, kecuali jika Anda mengetahui bahwa tugas Anda memiliki tuntutan yang tidak biasa terhadap penggunaan disk utama.

Jika tugas Anda menggunakan banyak disk dan berjalan lambat pada tiap-tiap node, Anda dapat menambahkan lebih banyak kapasitas disk utama. Untuk tugas yang menggunakan banyak disk, terutama tugas dengan banyak operasi baca dan tulis individual, Anda mungkin dapat meningkatkan pengoperasian dengan menambahkan SSD lokal. Tambahkan SSD yang cukup untuk menampung semua ruang yang Anda butuhkan untuk eksekusi lokal. Direktori eksekusi lokal Anda tersebar di sejumlah SSD yang Anda tambahkan.

Menggunakan worker node preemptible

Anda dapat memperoleh daya pemrosesan berbiaya rendah untuk tugas dengan menambahkan worker node preemptible ke cluster. Node ini menggunakan preemptible virtual machine.

Pertimbangkan ketidakandalan yang melekat pada node preemptible sebelum memilih untuk menggunakannya. Dataproc berusaha menangani preemption dengan lancar, tetapi tugas bisa saja gagal jika kehilangan terlalu banyak node. Hanya gunakan node preemptible untuk tugas yang fault-tolerant atau yang memiliki prioritas cukup rendah sehingga kegagalan tugas sesekali tidak akan mengganggu bisnis Anda.

Jika Anda memutuskan untuk menggunakan worker node preemptible, pertimbangkan rasio node reguler terhadap node preemptible. Tidak ada formula universal untuk mendapatkan hasil terbaik, tetapi secara umum, semakin banyak node preemptible yang Anda gunakan dibandingkan dengan node standar, semakin tinggi kemungkinan tugas tersebut tidak akan memiliki cukup node untuk menyelesaikan tugas. Anda dapat menentukan rasio terbaik node preemptible terhadap node reguler untuk sebuah tugas dengan cara bereksperimen menggunakan berbagai rasio dan menganalisis hasilnya.

Perlu diperhatikan bahwa SSD tidak tersedia di worker node preemptible. Jika Anda menggunakan SSD pada node khusus, setiap worker node preemptible yang Anda gunakan akan cocok dengan setiap aspek lainnya dari node khusus tersebut, tetapi tidak akan memiliki SSD yang tersedia.

Tugas yang berjalan

Dataproc menyediakan beberapa antarmuka yang dapat Anda gunakan untuk meluncurkan tugas yang semuanya dijelaskan dalam dokumentasi produk. Bagian ini menjelaskan opsi dan operasi yang perlu dipertimbangkan saat menjalankan tugas Hadoop di Google Cloud.

Mendapatkan output tugas

Tugas yang Anda jalankan di Dataproc biasanya memiliki beberapa jenis output. Tugas Anda mungkin menulis berbagai jenis output secara langsung—misalnya, ke file di bucket Cloud Storage atau ke produk cloud lainnya, seperti BigQuery. Dataproc juga mengumpulkan log dan output konsol serta memasukkannya ke dalam bucket staging Cloud Storage yang terkait dengan cluster tempat tugas dijalankan.

Menggunakan tugas yang dapat dimulai kembali

Saat mengirimkan tugas, Anda dapat mengonfigurasinya untuk memulai ulang secara otomatis jika terjadi masalah. Opsi ini berguna untuk tugas yang bergantung pada resource atau keadaan yang sangat bervariasi. Misalnya, tugas yang melakukan streaming data melalui saluran yang berpotensi tidak dapat diandalkan (seperti internet publik) sangat rentan terhadap kegagalan acak karena kesalahan waktu tunggu habis dan masalah jaringan yang serupa. Jalankan tugas sebagai tugas yang dapat dimulai ulang jika Anda merasa bahwa tugas tersebut akan mengalami kegagalan, tetapi juga akan berhasil dijalankan dalam waktu singkat.

Penskalaan cluster Anda

Dataproc memudahkan penambahan atau penghapusan node untuk cluster Anda kapan saja, termasuk saat tugas sedang berjalan. Dokumentasi Dataproc berisi petunjuk mendetail untuk menskalakan cluster Anda. Penskalaan mencakup opsi untuk penghentian tuntas node. Dengan opsi ini, node yang akan dihapus diberi waktu untuk menyelesaikan pemrosesan yang sedang berlangsung.

Mengelola tugas seiring waktu

Berurusan dengan setiap tugas biasanya tidak rumit, tetapi sistem Hadoop dapat mencakup puluhan atau ratusan tugas. Seiring waktu, jumlah log, file output, dan informasi lain yang terkait dengan setiap tugas akan bertambah banyak, sehingga dapat menyulitkan pengguna untuk menemukan informasi apa pun. Berikut adalah beberapa hal yang dapat Anda lakukan untuk mempermudah pengelolaan tugas Anda di masa mendatang:

  • Gunakan label kustom untuk mengidentifikasi tugas, cluster, dan resource lainnya. Menggunakan label memudahkan penggunaan filter untuk menemukan resource nanti. Dataproc mendukung label khusus menggunakan sistem label Google Cloud standar. Jadi, saat Anda memberi label pada resource, Dataproc dapat membantu mengelola resource tersebut di layanan Google Cloud lainnya.
  • Mengatur bucket Cloud Storage Anda untuk memisahkan berbagai jenis tugas. Mengelompokkan data ke dalam bucket yang sesuai dengan struktur bisnis atau area fungsional Anda juga dapat mempermudah pengelolaan izin.
  • Tentukan cluster untuk masing-masing tugas atau kelompok tugas yang terkait erat. Jauh lebih mudah untuk mengupdate penyiapan cluster ephemeral jika Anda menggunakan setiap konfigurasi hanya untuk tugas dengan cakupan yang baik.

Langkah selanjutnya