Berbagi teknologi

Dasar-dasar Big Data: Prinsip Arsitektur Utama Benang di Hadoop

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Direktori artikel

Prinsip arsitektur utama Yarn di Hadoop

1. Pengenalan Benang

2. Arsitektur benang

3. Proses menjalankan tugas benang

4. Karakteristik dan skenario penggunaan tiga penjadwal sumber daya Yarn


Prinsip arsitektur utama Yarn di Hadoop

1. Pengenalan Benang

Apache Hadoop Yarn (Yet Another Resource Negotiator, resource coordinator lainnya) adalah pengelola sumber daya yang digunakan setelah versi Hadoop2.x, yang dapat menyediakan platform manajemen sumber daya terpadu untuk aplikasi lapisan atas.

2. Arsitektur benang

Benang terutama terdiri dari ResourceManager, NodeManager, ApplicationMaster, dan Container.

  • Manajer Sumber Daya

ResourceManager adalah manajer pusat di cluster Yarn dan bertanggung jawab atas alokasi sumber daya dan penjadwalan seluruh cluster. ResourceManager bertanggung jawab untuk memantau status node NodeManager, mengumpulkan sumber daya klaster, memproses permintaan sumber daya untuk tugas yang dikirimkan oleh Klien, dan memulai serta memantau ApplicationMaster untuk setiap Aplikasi.

  • Manajer Node

NodeManager bertanggung jawab untuk mengelola sumber daya (seperti memori, CPU, dll.) di setiap node dan melaporkan ke ResourceManager. Ketika ResourceManager mengalokasikan kontainer (Container) ke NodeManager, NodeManager bertanggung jawab untuk memulai kontainer dan memantau jalannya kontainer. Selain itu, NodeManager juga menerima perintah ApplicationMaster untuk memulai kontainer (Container) untuk setiap Aplikasi.

  • AplikasiMaster

Setiap aplikasi yang berjalan di Yarn akan memulai ApplicationMaster terkait, yang bertanggung jawab untuk menerapkan sumber daya dengan ResourceManager dan mengelola tugas aplikasi. ApplicationMaster pada dasarnya adalah sebuah kontainer. Penjadwalan sumber daya dilakukan oleh ResourceManager dan dimulai oleh NodeManager. Setelah ApplicationMaster dimulai, ia akan menerapkan sumber daya dari ResourceManager untuk menjalankan aplikasi. Setelah ResourceManager mengalokasikan sumber daya kontainer, ApplicationMaster akan terhubung ke NodeManager yang sesuai untuk memberi tahu memulai Kontainer dan mengelola sumber daya yang berjalan pada Tugas Kontainer.

  • Wadah

Kontainer Kontainer adalah unit eksekusi dasar di Yarn, yang digunakan untuk menjalankan tugas aplikasi. Ini adalah lingkungan virtual yang berisi kode aplikasi, dependensi, dan sumber daya yang diperlukan untuk operasi (memori, CPU, disk, jaringan). Setiap kontainer ditugaskan ke ApplicationMaster oleh ResourceManager dan dimulai serta dikelola pada node yang sesuai oleh NodeManager. Penggunaan sumber daya kontainer dipantau oleh NodeManager dan dilaporkan ke ResourceManager bila diperlukan.

Inti dari Yarn adalah memisahkan fungsi manajemen sumber daya dan penjadwalan tugas JobTracker di MR1, yang masing-masing diterapkan oleh proses ResourceManager dan ApplicationMaster. ResourceManager bertanggung jawab atas manajemen sumber daya dan penjadwalan seluruh cluster; penjadwalan tugas aplikasi, pemantauan tugas, dan toleransi kesalahan.

3. Proses menjalankan tugas benang

  1. Saat klien mengirimkan tugas MR ke Yarn, sumber daya tugas MR (Split, konfigurasi sumber daya, informasi paket Jar) pertama-tama akan diunggah ke HDFS.

  2. Klien menerapkan ResourceManager untuk memulai ApplicationMaster.

  3. ResourceManager akan memilih node NodeManager yang relatif tidak sibuk dan memberitahukan node tersebut untuk memulai ApplicationMaster (Container).

  4. Setelah ApplicationMaster dimulai, ia akan mengunduh informasi sumber daya tugas MR dari HDFS ke lokal, dan kemudian mengajukan sumber daya dari ResourceManager untuk memulai Tugas MR.

  5. ResourceManager mengembalikan daftar sumber daya ke ApplicationMaster.

  6. ApplicationMaster kemudian memberi tahu NodeManager terkait untuk memulai Container.

  7. Setelah Kontainer dimulai, Kontainer akan didaftarkan secara terbalik ke ApplicationMaster.

  8. ApplicationMaster mengirimkan Tugas ke Kontainer untuk dijalankan. Tugas tersebut mengeksekusi logika bisnis dari kode yang kami tulis.

4. Karakteristik dan skenario penggunaan tiga penjadwal sumber daya Yarn

  • Penjadwal FIFO (Penjadwal Masuk Pertama) , penjadwal paling sederhana di Yarn. Penjadwal FIFO akan memasukkan aplikasi yang dikirimkan ke dalam antrian masuk pertama, keluar pertama sesuai urutan pengiriman. Saat mengalokasikan sumber daya, sumber daya akan dialokasikan ke aplikasi teratas dalam antrian terlebih dahulu, dan kemudian mengalokasikan sumber daya ke aplikasi berikutnya setelahnya. persyaratan sumber daya dari aplikasi teratas terpenuhi. Aplikasi mengalokasikan sumber daya, dan seterusnya. Ketika penjadwal semacam ini menjadwalkan sumber daya, ada kemungkinan aplikasi dengan kebutuhan sumber daya yang besar menempati semua sumber daya cluster, menyebabkan aplikasi lain diblokir.

  • Penjadwal Kapasitas (Penjadwal Kapasitas) Ini adalah penjadwal sumber daya default yang dikonfigurasi di Yarn, memungkinkan multi-penyewa berbagi klaster besar dengan aman. Penjadwal Kapasitas mendukung konfigurasi beberapa antrean sumber daya. Anda dapat menentukan rasio sumber daya minimum dan maksimum yang dapat digunakan untuk setiap antrean sumber daya. Saat mengalokasikan sumber daya, sumber daya yang menganggur akan diprioritaskan ke sumber daya yang memiliki rasio "sumber daya aktual/sumber daya anggaran" terendah. setiap antrian sumber daya mengadopsi strategi penjadwalan FIFO secara internal.

  • Penjadwal yang AdilIni adalah metode penjadwalan sumber daya yang mengalokasikan sumber daya Yarn secara adil ke setiap aplikasi. Metode penjadwalan ini memungkinkan semua aplikasi memperoleh pembagian sumber daya yang sama dari waktu ke waktu. Tujuan desainnya adalah untuk mengalokasikan secara adil ke semua aplikasi sesuai dengan parameter yang ditentukan.

Perbedaan antara penjadwal sumber daya FIFO, Kapasitas, dan Adil di Yarn adalah sebagai berikut:

Penjadwal sumber daya benangFiturAdegan yang berlaku
Penjadwal FIFO

1. Sederhana dan mudah dimengerti, tidak diperlukan konfigurasi tambahan.

2. Lamaran dijalankan sesuai urutan penyerahannya (masuk pertama, keluar pertama).

3. Tidak cocok untuk cluster bersama, setiap aplikasi harus menunggu giliran untuk dijalankan.

Cluster non-bersama, skenario yang tidak memiliki persyaratan tinggi pada urutan pelaksanaan tugas. Umumnya tidak digunakan di lingkungan produksi.

Penjadwal kapasitas

(digunakan secara default di Yarn open source)

1. Izinkan beberapa organisasi untuk berbagi sumber daya cluster, dan setiap organisasi memiliki antrian khusus.

2. Mendukung pembagian antrian secara hierarki dan konfigurasi sumber daya antrian yang fleksibel.

3. Anda dapat membatasi kapasitas maksimum antrian dan mengurangi persaingan sumber daya.

Skenario klaster bersama, di mana beberapa organisasi atau tim berbagi sumber daya klaster yang sama.

Penjadwal yang adil

(digunakan oleh CDH secara default)

1. Alokasikan sumber daya secara adil ke semua aplikasi yang berjalan dan dukung pembagian sumber daya yang adil di antara banyak antrean.

2. Mendukung pembuatan antrian secara dinamis dan menentukan penempatan aplikasi melalui serangkaian sistem aturan.

3. Mendukung fungsi preemption sumber daya untuk memastikan distribusi sumber daya yang adil.

1. Skenario di mana banyak pengguna atau organisasi perlu memperoleh sumber daya secara adil dalam klaster bersama.

2. Lingkungan dengan persyaratan tinggi untuk kontrol sumber daya tingkat antrian dan strategi penjadwalan yang terperinci.


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨