Menskalakan secara otomatis kluster Azure HDInsight
Fitur Penskalaan Otomatis gratis Azure HDInsight dapat secara otomatis menambah atau mengurangi jumlah node pekerja di kluster Anda berdasarkan metrik kluster dan kebijakan penskalaan yang diadopsi oleh pelanggan. Fitur Skala Otomatis berfungsi dengan menskalakan jumlah simpul dalam batas prasetel berdasarkan metrik performa atau jadwal operasi peningkatan dan penurunan skala yang ditentukan.
Cara kerjanya
Fitur Skala otomatis menggunakan dua jenis kondisi untuk memicu peristiwa penskalaan: ambang batas untuk berbagai metrik performa kluster (disebut penskalaan berbasis beban)dan pemicu berbasis waktu (disebut penskalaan berbasis jadwal). Penskalaan berbasis beban mengubah jumlah simpul di kluster Anda, dalam rentang yang Anda tetapkan, untuk memastikan penggunaan CPU yang optimal dan meminimalkan biaya berjalan. Penskalaan berbasis jadwal mengubah jumlah simpul di kluster Anda berdasarkan jadwal operasi penambahan dan penurunan skala.
Video berikut memberikan gambaran umum tentang tantangan, yang diselesaikan Autoscale dan bagaimana hal itu dapat membantu Anda mengontrol biaya dengan HDInsight.
Memilih penskalaan berbasis beban atau jadwal
Penskalaan berbasis jadwal dapat digunakan:
- Ketika pekerjaan Anda diharapkan berjalan pada jadwal tetap dan untuk durasi yang dapat diprediksi atau Ketika Anda mengantisipasi penggunaan rendah selama waktu tertentu dalam sehari. Misalnya, lingkungan pengujian dan pengembangan dalam jam kerja pasca-kerja, pekerjaan akhir hari.
Penskalaan berbasis beban dapat digunakan:
- Ketika pola beban berfluktuasi secara substansial dan tidak terduga di siang hari. Misalnya, memesan pemrosesan data dengan fluktuasi acak dalam pola beban berdasarkan berbagai faktor.
Metrik kluster
Skala otomatis terus memantau kluster dan mengumpulkan metrik berikut:
Metrik | Deskripsi |
---|---|
Total CPU tertunda | Jumlah total inti yang diperlukan untuk memulai eksekusi semua kontainer yang tertunda. |
Total Memori Tertunda | Memori total (dalam MB) diperlukan untuk memulai eksekusi semua kontainer yang tertunda. |
Total CPU Bebas | Jumlah semua inti yang tidak digunakan pada simpul pekerja aktif. |
Memori Total Bebas | Jumlah memori yang tidak digunakan (dalam MB) pada simpul pekerja aktif. |
Memori Yang Digunakan per Simpul | Beban pada simpul pekerja. Simpul pekerja di mana memori 10 GB digunakan, dianggap di bawah beban lebih dari pekerja dengan memori yang digunakan 2 GB. |
Jumlah Master Aplikasi per Simpul | Jumlah kontainer Master Aplikasi (Application Master; AM) yang berjalan pada simpul pekerja. Simpul pekerja yang menghosting dua kontainer AM, dianggap lebih penting daripada simpul pekerja yang menghosting nol kontainer AM. |
Metrik di atas diperiksa setiap 60 detik. Skala otomatis membuat keputusan penambahan skala dan penurunan skala berdasarkan metrik ini.
Untuk daftar lengkap metrik kluster, lihat Metrik yang didukung untuk Microsoft.HDInsight/clusters.
Kondisi skala berbasis beban
Ketika kondisi berikut terdeteksi, Skala otomatis mengeluarkan permintaan skala:
Penambahan skala | Penurunan Skala |
---|---|
Total CPU yang sedang dalam proses lebih besar dari total CPU yang bebas selama lebih dari 3-5 menit. | Total CPU yang tertunda kurang dari total CPU gratis selama lebih dari 3-5 menit. |
Total memori yang sedang dalam proses lebih besar dari total memori yang bebas selama lebih dari 3-5 menit. | Total memori yang tertunda kurang dari total memori kosong selama lebih dari 3-5 menit. |
Untuk penskalaan, skala otomatis mengeluarkan permintaan penskalaan untuk menambahkan jumlah simpul yang diperlukan. Penambahan skala didasarkan pada berapa banyak simpul pekerja baru yang diperlukan untuk memenuhi persyaratan CPU dan memori saat ini.
Untuk penurunan skala, Skala otomatis mengeluarkan permintaan untuk menghapus beberapa simpul. Penurunan skala didasarkan pada jumlah kontainer Master Aplikasi (AM) per node. Dan persyaratan CPU dan memori saat ini. Layanan ini juga mendeteksi simpul mana yang menjadi kandidat penghapusan berdasarkan eksekusi pekerjaan saat ini. Operasi penurunan skala pertama-tama menonaktifkan simpul, lalu menghapusnya dari kluster.
Pertimbangan ukuran Ambari DB untuk penskalaan otomatis
Disarankan agar Ambari DB berukuran benar untuk menuai manfaat skala otomatis. Pelanggan harus menggunakan tingkat DB yang benar dan menggunakan Ambari DB kustom untuk kluster ukuran besar. Silakan baca rekomendasi ukuran Database dan Headnode.
Kompatibilitas kluster
Penting
Fitur Azure HDInsight Autoscale dirilis dan tersedia umum pada 7 November 2019 untuk kluster Spark dan Hadoop dan menyertakan peningkatan yang tidak tersedia dalam versi pratinjau fitur. Jika Anda membuat kluster Spark sebelum 7 November 2019 dan ingin menggunakan fitur Autoscale pada kluster Anda, jalur yang disarankan adalah membuat kluster baru, dan enable Autoscale
pada kluster baru.
Skala otomatis for Interactive Query (LLAP) dirilis untuk ketersediaan umum untuk IPM 4.0 pada 27 Agustus 2020. Penskalaan Otomatis hanya tersedia di Spark, Hadoop, dan Interactive Query, kluster
Tabel berikut ini menjelaskan tipe kluster dan versi yang kompatibel dengan fitur Autoscale.
Versi | Spark | Hive | Interactive Query | HBase | Kafka |
---|---|---|---|---|---|
HDInsight 4.0 tanpa ESP | Ya | Ya | Ya* | Tidak | Tidak |
HDInsight 4.0 dengan ESP | Ya | Ya | Ya* | Tidak | Tidak |
HDInsight 5.0 tanpa ESP | Ya | Ya | Ya* | Tidak | Tidak |
HDInsight 5.0 dengan ESP | Ya | Ya | Ya* | Tidak | Tidak |
* Kluster Interactive Query hanya dapat dikonfigurasi untuk penskalaan berbasis jadwal, bukan berbasis beban.
Memulai
Buat kluster dengan Penskalaan otomatis berbasis beban
Untuk mengaktifkan fitur skala otomatis dengan penskalaan berbasis beban, selesaikan langkah-langkah berikut sebagai bagian dari proses pembuatan kluster normal:
Pada tab Konfigurasi + harga , pilih kotak
Enable autoscale
centang.Pilih Berbasis beban di bawah Tipe skala otomatis.
Masukkan nilai yang dimaksudkan untuk properti berikut ini:
- Jumlah awal simpul untuk simpul Pekerja.
- Jumlah simpul pekerja Minimum.
- Jumlah simpul pekerja Maksimum.
Jumlah awal simpul pekerja harus berada di antara minimum dan maksimum, termasuk. Nilai ini menentukan ukuran awal kluster saat dibuat. Jumlah minimum simpul pekerja harus diatur ke tiga atau lebih. Menskalakan kluster Anda menjadi kurang dari tiga simpul dapat mengakibatkannya terjebak dalam mode aman karena replikasi file yang tidak mencukupi. Untuk informasi selengkapnya, lihat Terjebak dalam mode aman.
Membuat kluster dengan Penskalaan otomatis berbasis jadwal
Untuk mengaktifkan fitur Skala otomatis dengan penskalaan berbasis jadwal, selesaikan langkah-langkah berikut sebagai bagian dari proses pembuatan kluster normal:
Pada tab Konfigurasi + harga , centang kotak
Enable autoscale
centang.Masukkan Jumlah simpul untuk simpul Pekerja, yang mengontrol batas untuk meningkatkan kluster.
Pilih opsi Jadwalkan berbasis di bawah Tipe skala Otomatis.
Pilih Konfigurasikan untuk membuka jendela Konfigurasi skala Otomatis.
Pilih zona waktu Anda lalu klik + Tambahkan kondisi
Pilih hari dalam seminggu yang harus diterapkan oleh kondisi baru.
Edit waktu kondisi harus berlaku dan jumlah simpul yang harus diskalakan kluster.
Tambahkan lebih banyak kondisi jika diperlukan.
Jumlah simpul harus antara 3 dan jumlah maksimum simpul pekerja yang Anda masukkan sebelum menambahkan kondisi.
Langkah-langkah pembuatan akhir
Pilih tipe VM untuk simpul pekerja dengan memilih VM dari daftar turun bawah di bawah Ukuran simpul. Setelah Anda memilih tipe VM untuk setiap jenis simpul, Anda dapat melihat perkiraan kisaran biaya untuk seluruh kluster. Sesuaikan jenis VM agar sesuai dengan anggaran Anda.
Langganan Anda memiliki kuota kapasitas untuk setiap wilayah. Jumlah total inti simpul head Anda dan simpul pekerja maksimum tidak dapat melebihi kuota kapasitas. Namun, kuota ini merupakan batas lunak; Anda selalu dapat membuat tiket dukungan untuk meningkatkannya dengan mudah.
Catatan
Jika Anda melebihi batas kuota inti total, Anda akan menerima pesan kesalahan yang mengatakan 'simpul maksimum melebihi inti yang tersedia di wilayah ini, silakan pilih wilayah lain atau hubungi dukungan untuk menambah kuota.'
Untuk informasi selengkapnya tentang pembuatan kluster HDInsight menggunakan portal Microsoft Azure, lihat Buat kluster berbasis Linux di HDInsight menggunakan portal Microsoft Azure.
Buat jadwal dengan templat Resource Manager
Penskalaan otomatis berbasis beban
Anda dapat membuat kluster HDInsight dengan Autoscaling berbasis beban templat Azure Resource Manager, dengan menambahkan node autoscale
ke computeProfile
workernode
>bagian dengan properti minInstanceCount
dan maxInstanceCount
seperti yang ditunjukkan pada cuplikan json. Untuk templat Resource Manager lengkap, lihat Templat mulai cepat: Menyebarkan Kluster Spark dengan skala otomatis berbasis beban diaktifkan.
{
"name": "workernode",
"targetInstanceCount": 4,
"autoscale": {
"capacity": {
"minInstanceCount": 3,
"maxInstanceCount": 10
}
},
"hardwareProfile": {
"vmSize": "Standard_D13_V2"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "[parameters('sshUserName')]",
"password": "[parameters('sshPassword')]"
}
},
"virtualNetworkProfile": null,
"scriptActions": []
}
Penskalaan otomatis berbasis jadwal
Anda dapat membuat kluster HDInsight dengan Autoscaling berbasis jadwal template Azure Resource Manager, dengan menambahkan autoscale
simpul ke computeProfile
> workernode
bagian tersebut. Simpul autoscale
berisi recurrence
yang memiliki timezone
dan schedule
yang menjelaskan kapan perubahan terjadi. Simpul untuk templat Azure Resource Manager lengkap, lihat Sebarkan kluster Spark dengan Skala Otomatis berbasis jadwal Diaktifkan.
{
"autoscale": {
"recurrence": {
"timeZone": "Pacific Standard Time",
"schedule": [
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"timeAndCapacity": {
"time": "11:00",
"minInstanceCount": 10,
"maxInstanceCount": 10
}
}
]
}
},
"name": "workernode",
"targetInstanceCount": 4
}
Aktifkan dan nonaktifkan SkalaOtomatis untuk kluster yang sedang berjalan
Menggunakan portal Azure
Untuk mengaktifkan Skala otomatis pada kluster yang sedang berjalan, pilih Ukuran kluster di bawah Pengaturan. Lalu, pilih Enable autoscale
. Pilih tipe Skala otomatis yang Anda inginkan dan masukkan opsi untuk penskalaan berbasis beban atau jadwal. Terakhir, pilih Simpan.
Menggunakan REST API
Untuk mengaktifkan atau menonaktifkan skala otomatis pada kluster yang sedang berjalan menggunakan REST API, buat permintaan POST ke titik akhir Skala otomatis:
https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{CLUSTERNAME}/roles/workernode/autoscale?api-version=2018-06-01-preview
Gunakan parameter yang sesuai dalam muatan permintaan. Payload json berikut dapat digunakan untuk enable Autoscale
. Gunakan muatan {autoscale: null}
untuk menonaktifkan Skala otomatis.
{ "autoscale": { "capacity": { "minInstanceCount": 3, "maxInstanceCount": 5 } } }
Lihat bagian sebelumnya tentang mengaktifkan skala otomatis berbasis beban untuk deskripsi lengkap semua parameter muatan. Tidak disarankan untuk menonaktifkan layanan skala otomatis secara paksa pada kluster yang sedang berjalan.
Memantau aktivitas Skala otomatis
Status kluster
Status kluster yang tercantum di portal Microsoft Azure dapat membantu Anda memantau aktivitas Skala otomatis.
Semua pesan status kluster yang mungkin Anda lihat dijelaskan dalam daftar berikut.
Status kluster | Deskripsi |
---|---|
Sedang berjalan | kluster ini beroperasi secara normal. Semua aktivitas Skala otomatis sebelumnya telah berhasil diselesaikan. |
Memperbarui | Konfigurasi skala otomatis kluster sedang diperbarui. |
Konfigurasi HDInsight | Operasi skala kluster naik atau turun skala sedang berlangsung. |
Memperbarui kesalahan | HDInsight menemui masalah selama pembaruan konfigurasi Skala otomatis. Pelanggan dapat memilih untuk mencoba kembali pembaruan atau menonaktifkan skala otomatis. |
Kesalahan | Ada yang salah dengan kluster, dan itu tidak dapat digunakan. Hapus kluster ini dan buat yang baru. |
Untuk melihat jumlah simpul saat ini di kluster Anda, buka bagan Ukuran kluster pada halaman Gambaran Umum untuk kluster Anda. Atau pilih Ukuran kluster di bawah Pengaturan.
Riwayat operasi
Anda dapat menampilkan penambahan skala kluster dan riwayat penurunan skala sebagai bagian dari metrik kluster. Anda juga dapat mencantumkan semua tindakan penskalaan selama satu hari, minggu, atau periode waktu lainnya.
Pilih Metrik di bagian Pemantauan. Lalu pilih Tambahkan metrik dan Jumlah Pekerja Aktif dari kotak turun bawah Metrik. Pilih tombol di kanan atas untuk mengubah rentang waktu.
Praktik terbaik
Pertimbangkan latensi skala dan menurunkan skala operasi
Diperlukan waktu 10 hingga 20 menit untuk menyelesaikan operasi penskalaan secara keseluruhan. Saat menyiapkan jadwal yang dikustomisasi, rencanakan penundaan ini. Misalnya, jika Anda memerlukan ukuran kluster menjadi 20 pada pukul 09.00, atur pemicu jadwal ke waktu yang lebih awal seperti pukul 08.30 atau lebih awal sehingga operasi penskalaan selesai pada pukul 09.00.
Bersiaplah untuk penurunan penskalaan
Selama proses penurunan penskalaan kluster ke bawah, Skala otomatis menonaktifkan simpul untuk memenuhi ukuran target. Dalam penskalaan otomatis berbasis beban, Jika tugas berjalan pada simpul tersebut, Autoscale menunggu hingga tugas selesai untuk kluster Spark dan Hadoop. Karena setiap node pekerja juga memiliki peran dalam HDFS, data sementara dipindahkan ke node pekerja yang tersisa. Pastikan ada cukup ruang pada simpul yang tersisa untuk menghosting semua data sementara.
Catatan
Dalam kasus penurunan skala Penskalaan Otomatis berbasis jadwal, penonaktifan yang ringan tidak didukung. Ini dapat menyebabkan kegagalan pekerjaan selama operasi penurunan skala, dan disarankan untuk merencanakan jadwal berdasarkan pola jadwal pekerjaan yang diantisipasi untuk menyertakan waktu yang cukup untuk pekerjaan yang sedang berlangsung untuk disimpulkan. Anda dapat mengatur jadwal dengan melihat penyebaran historis waktu penyelesaian untuk menghindari kegagalan pekerjaan.
Mengonfigurasi Skala otomatis berbasis jadwal berdasarkan pola penggunaan
Anda perlu memahami pola penggunaan kluster saat mengonfigurasi Skala otomatis berbasis jadwal. Dasbor Grafana dapat membantu Anda memahami pemuatan kueri dan slot eksekusi. Anda bisa mendapatkan slot eksekutor yang tersedia dan slot eksekutor total dari dasbor.
Berikut adalah cara Anda dapat memperkirakan berapa banyak simpul pekerja yang diperlukan. Sebaiknya berikan buffer 10% lain untuk menangani variasi beban kerja.
Jumlah slot eksekutor yang digunakan = Total slot eksekutor – Total slot eksekutor yang tersedia.
Jumlah simpul pekerja yang diperlukan = Jumlah slot eksekutor yang benar-benar digunakan / (hive.llap.daemon.num.executors + hive.llap.daemon.task.scheduler.wait.queue.size).
*hive.llap.daemon.num.executors dapat dikonfigurasi dan defaultnya adalah 4.
*hive.llap.daemon.task.scheduler.wait.queue.size dapat dikonfigurasi dan defaultnya adalah 10.
Tindakan Skrip Kustom
Tindakan Skrip Kustom sebagian besar digunakan untuk menyesuaikan simpul (HeadNode / WorkerNodes) yang memungkinkan pelanggan kami untuk mengonfigurasi pustaka dan alat tertentu, yang sedang digunakan oleh mereka. Salah satu kasus penggunaan umum adalah pekerjaan yang berjalan pada kluster mungkin memiliki beberapa dependensi pada pustaka pihak ketiga, yang dimiliki oleh Pelanggan, dan harus tersedia pada simpul agar pekerjaan berhasil. Untuk Autoscale, saat ini kami mendukung tindakan skrip kustom, yang dipertahankan, oleh karena itu setiap kali simpul baru ditambahkan ke kluster sebagai bagian dari operasi peningkatan skala, tindakan skrip yang bertahan ini akan dijalankan dan memposting bahwa kontainer atau pekerjaan akan dialokasikan pada mereka. Meskipun memiliki tindakan skrip kustom membantu bootstrapping simpul baru, disarankan untuk menjaganya tetap minimal karena akan menambah latensi peningkatan skala secara keseluruhan dan dapat menyebabkan dampak pada pekerjaan terjadwal.
Waspadai ukuran kluster minimum
Jangan skala kluster Anda turun ke kurang dari tiga simpul. Menskalakan kluster Anda menjadi kurang dari tiga simpul dapat mengakibatkannya terjebak dalam mode aman karena replikasi file yang tidak mencukupi. Untuk informasi selengkapnya, lihat terjebak dalam mode aman.
Microsoft Entra Domain Services & Operasi Penskalaan
Jika Anda menggunakan kluster HDInsight dengan Paket Keamanan Perusahaan (ESP) yang digabungkan ke domain terkelola Microsoft Entra Domain Services, kami sarankan pembatasan beban pada Microsoft Entra Domain Services. Dalam sinkronisasi tercakup struktur direktori yang kompleks, sebaiknya hindari dampak pada operasi penskalan.
Set konfigurasi Apache Hive Total Maksimum Kueri Bersamaan untuk skenario penggunaan puncak
Peristiwa skala otomatis tidak mengubah konfigurasi Apache Hive Kueri Total Bersamaan Maksimum di Ambari. Ini berarti bahwa Layanan Interaktif Apache Hive Server 2 hanya dapat menangani jumlah kueri bersamaan yang diberikan pada setiap titik waktu bahkan jika jumlah daemon Kueri Interaktif ditingkatkan dan diturunkan berdasarkan beban dan jadwal. Rekomendasi umum adalah mengatur konfigurasi ini untuk skenario penggunaan puncak untuk menghindari intervensi manual.
Namun, Anda mungkin mengalami kegagalan hidupkan ulang Apache Hive Server 2 jika hanya ada beberapa simpul pekerja dan nilai untuk total kueri bersamaan maksimum dikonfigurasi terlalu tinggi. Minimal, Anda memerlukan jumlah minimum simpul pekerja yang dapat mengakomodasi jumlah Tez Ams
yang diberikan (sama dengan konfigurasi Total Kueri Bersamaan Maksimum).
Batasan
Jumlah Daemon Kueri Interaktif
Jika kluster Interactive Query berkemampuan skala otomatis, peristiwa peningkatan/penurunan skala otomatis juga meningkatkan/menurunkan jumlah daemon Interactive Query ke jumlah simpul pekerja aktif. Perubahan jumlah daemon tidak bertahan dalam num_llap_nodes
konfigurasi di Ambari. Jika layanan Apache Hive dimulai ulang secara manual, jumlah daemon Interaktive Query direset sesuai konfigurasi di Ambari.
Jika layanan Interaktive Query dimulai ulang secara manual, Anda perlu mengubah num_llap_node
konfigurasi secara manual (jumlah simpul yang diperlukan untuk menjalankan daemon Interaktive Query Apache Hive) di bawah Advanced hive-interactive-env untuk mencocokkan jumlah simpul pekerja aktif saat ini. Kluster Kueri Interaktif hanya mendukung Skala Otomatis Berbasis Jadwal.
Langkah berikutnya
Baca tentang panduan untuk menskalakan kluster secara manual dalam Panduan penskalaan.