Video: Hadoop MapReduce Example | MapReduce Programming | Hadoop Tutorial For Beginners | Edureka 2024
) HDFS'nin kurulduğu şekilde, çok büyük dosyaları büyük bloklara böler (örneğin, 128MB ölçer) ve bu blokların üç kopyasını kümedeki farklı düğümlere depolar HDFS, bu dosyaların içeriği hakkında bir farkındalık taşımaz
MapReduce işi başlatıldığında, YARN'da Kaynak Yöneticisi (küme kaynak yönetimi ve iş planlama tesisi), işin yaşam döngüsüne bakmak için bir Uygulama Ana Daemon oluşturur (Hadoop 1'de, JobTracker iş planlaması ve küme kaynağı yönetimi ile birlikte bireysel işleri de izler.)
yerel olarak - işlenir. Veri bloklarının işlenme biçimine bakmadan önce, Hadoop'un verileri nasıl depoladığına daha yakından bakmanız gerekir. Hadoop'ta, dosyalar münferit kayıtlardan oluşur ve bunlar nihayetinde eşleme görevleri tarafından tek tek işlenir.
Örneğin, örnek veri kümesi, 1987 ve 2008 yılları arasında Birleşik Devletler'de tamamlanan uçuşlar hakkında bilgi içerir.
Her yıl için bir büyük dosyanız var ve her dosyada tek tek satırlar tek bir uçuşu temsil ediyor. Başka bir deyişle, bir satır bir kaydı temsil eder. Şimdi, Hadoop kümesinin blok boyutunun 64MB olduğunu unutmayın; bu, hafif veri dosyalarının tam 64 MB'lik parçalara ayrıldığı anlamına gelir.
Sorunu görüyor musun? Her bir harita görevi, belirli bir veri bloğundaki tüm kayıtları işlerse, blok sınırlarını aşan bu kayıtlara ne olur? Dosya blokları 64 MB'dır (veya ne olursa olsun blok boyutunu ayarlarsınız) ve HDFS, dosya bloklarının içerisindeki herhangi bir kavrama sahip olmadığından, bir kaydın başka bir bloğa dökülüp atılmadığını ölçemez.
Bu sorunu çözmek için Hadoop, girdi bölmeleri olarak bilinen dosya bloklarında depolanan verilerin mantıksal bir temsilini kullanır. Bir MapReduce iş istemcisi, giriş bölmelerini hesapladığında, bir bloğun içindeki ilk tüm kaydın nerede başladığını ve bloğun son kaydının nerede bittiğini bulur. Bir bloğun son kaydının eksik olması durumunda, giriş bölme, bir sonraki bloğun konum bilgisini ve kaydı tamamlamak için gereken verinin bayt uzaklıkını içerir.
Şekil, veri blokları ve girdi bölmeleri arasındaki bu ilişkiyi göstermektedir.
Çok sayıda veri bloğunu işleyen işler için daha hızlı olabilecek iş istemcisi yerine giriş bölmelerini hesaplamak için Uygulama Ana Daemon'unu (veya Hadoop 1'de iseniz JobTracker'ı) yapılandırabilirsiniz.
MapReduce veri işlemi, bu bölme girişi kavramına dayanıyor. Belirli bir uygulama için hesaplanan giriş bölmeleri sayısı, harita görevlerinin sayısını belirler. Bu haritalama görevlerinin her biri, mümkünse, giriş bölünmesinin saklandığı bir bağımlı düğüme atanır. Kaynak Yöneticisi (veya Hadoop 1'de iseniz JobTracker), giriş bölmelerinin yerel olarak işlenmesini sağlamak için elinden gelenin en iyisini yapar.