2016-03-27 48 views
2

Ben HDF'ler için iş teslimi ve Hadoop içinde İPLİK mimarisini ilgili birkaç soru vardı Verileriniz. Hadoop'a bir iş gönderdiğinizde, NameNode üzerindeki iş izleyici her işi seçecek ve dosyayı veri düğümü üzerinde bulunan görev izleyicisine atayacaktır.İPLİK ve Hadoop

Bu yüzden sorum, YARN'in bileşenleri HDFS'de nasıl birlikte çalışıyor?

YARN, NodeManager ve Kaynak Yöneticisinden oluşur. Bu iki bileşenden: NodeManager her DataNode üzerinde çalışır ve ResourceManager her küme için her NameNode üzerinde çalışır mı? Böylece, görev izleyici (her bir DataNode) iş izleyicisinden (NameNode) bir görev atandığında, belirli bir veri düğümündeki NodeManager, NameNode'daki ResourceManager'dan kaynak talep edecek bir kap oluşturur. Dolayısıyla bu kaynak yöneticisi ve düğüm yöneticisi sadece bir veri düğümünde görev izleyici, NameNode'daki iş izleyicisinden bir iş aldığında devreye girer; burada NodeManager, ResourceManager'dan işin yapılması için kaynaklar için soracaktır. Bu doğru mu?

cevap

3

Kısmen doğrusunuz. Hem programlamayı hem de izlemeyi yapan Jobtracker'ın yükünü önlemek için YARN resme getirildi. Yani YARN ile herhangi bir İş izleyici veya görev izleyici yok. İş izleyicisi tarafından yapılan iş, artık iki ana bileşenin Zamanlayıcısı (uygulamalara kaynak tahsis etmesi) ve ApplicationsManager (iş gönderimlerini kabul etme ve herhangi bir hata durumunda ApplicationMaster'ı yeniden başlatması) olan Kaynak Yöneticisi tarafından gerçekleştirilir. Artık her uygulamanın, çalışan uygulama için programlayıcıdan kapsayıcılar (işin nerede yürütüleceği) konusunda pazarlık eden bir ApplicationMaster vardır. Nodemanager her bağımlı düğümde/veri düğümünde çalışır. Kaynak Yöneticisi, adenin bulunduğu yerde yüklenemez/yüklenemez. Büyük bir kümede genellikle ustaları ayırmamız gerekir, böylece yük tek bir makineye gitmez.

+1

Merhaba Vignesh, bu çok açık! Artık JobTracker veya TaskTracker olmadan ResourceManager, "dağıtımın" tüm işlerini yürütür ve her bir DataNode üzerinde NodeManager ile iletişim kurarak, "görevleri" çalıştırmak için bu DataNode üzerinde kaynak ve bir kap ayırabilecek olup olmadığını görür. Şimdi, müşteri bir işi HDFS'ye gönderdiğinde, önce ResourceManager veya NameNode ile iletişim kuracak mı? İlk önce dosyanın Nerede var olduğunu anlamak gerektiğinden, NameNode sadece meta verilerini kullanarak erişebiliyor mu? – LP45

+1

Hayır, Namenode yardımına ihtiyaç duymaz. Giriş bölmesinin hesaplanmasının, İstemci tarafında Job (İş) veya JobSubmitter (İş Alanı) tarafından yapıldığını unutmayın ve şimdi bölme HDFS'ye yerleştirilir (böylelikle RM meta verisi gerektirmez), Kaynak Yöneticisi uygulamayı göndermek için istekte bulunmadan önce bu işlem tamamlanır. –

+0

Bu yüzden, bir işi HDFS'ye gönderirken (HDFS'den okuma yaparken), istediğiniz dosyanın hangi DataNode'larda kaldığını bulmak için NameNode ile etkileşime giriyorsunuz demektir? – LP45