Video: What is Big Data? - Computerphile 2024
Harita aşamasından sonra ve Reduce fazının başlamasından önce, karışıklık olarak bilinen bir teslim alma işlemi olur ve sıralama . Burada eşleme görevlerinden gelen veriler hazırlanır ve redüktör görevlerinin çalıştırılacağı düğümlere taşınır. Eşleştirici görevi tamamlandığında, sonuçlar anahtarla sıralanır, çoklu redüktör varsa bölünür ve daha sonra diske yazılır.
Bu kavramı MapReduce veri işleme akışını ve Hadoop kümesinin fiziksel bileşenleri ile etkileşimini gösteren aşağıdaki şekilde görebilirsiniz. (Bir hızlı not: Bellekteki veriler beyaz karelerle gösterilir ve diskte saklanan veriler gri karelerle temsil edilir.
MapReduce sürecinin tamamının hızlandırılması için, veri, son haritalama görevi işini bitirdiğinde ağ etkinliğinin oluşmasını önlemek için hemen redüktör görev düğümlerine taşınır. Bu aktarım, harita görevinin çalışması sırasında gerçekleşir, çünkü hatırlanan her kayıt çıkışları bekleyen bir azaltıcı görevin belleğinde saklanır. (Bunun gerçekleşip gerçekleşmeyeceğini yapıp yapamayacağınızı ve ayrıca iş parçacığı sayısını yapılandırabilirsiniz.)
Redüktör görevinin çoğu haritalama görevinin çıktısına sahip olmasına rağmen, tüm haritalama görevleri tamamlanıncaya kadar azaltma görevinin işleme başlamayacağını unutmayın.
MapReduce işinin performansının, kötü performans gösteren bir bağımlı düğümde çalışan bir tarayıcı eşleme görevi tarafından engellendiği senaryoları önlemek için MapReduce çerçevesi spekülatif yürütme olarak adlandırılan bir kavram kullanır.
Bazı eşleyici görevleri makul olarak kabul edilenden daha yavaş çalışıyorsa, Uygulama Yöneticisi yinelenen görevleri doğuracaktır (Hadoop 1'de, JobTracker bunu yapar). Önce görevin tamamladığı - kopya veya orijinal - sonuçlarını diske kaydeder ve diğer görev öldürüldü. İşlerinizi yakından izliyorsanız ve beklediğinizden daha fazla harita görevinin neden yürüdüğünü merak ediyorsanız, bunun muhtemel bir nedeni vardır.
Eşleyici görevlerinden çıkan çıktı HDFS'ye değil, eşleme görevinin çalıştırıldığı bağımlı düğümdeki yerel diske yazılır. Bu nedenle, Hadoop kümesinde çoğaltılamaz.
Çıktının sıkıştırılmasının yanı sıra, birleştirici bir görev çalıştırarak performansı potansiyel olarak artırabilirsiniz. Burada gösterilen bu basit taktik, tek tek haritalama görevleri için yerel bir çıktı azaltma işlemini içerir.
Sistemin redüktör işlevini kullanmasını söyleyebildiğiniz için çoğunlukla ilave programlamaya gerek yoktur. Redüktör işlevini kullanmıyorsanız, birleştirme işlevi çıktısının redüktör işlevi ile aynı olduğundan emin olmanız gerekir.
Birleştirici işlevin bir kez, birden çok kez çalıştırılması gerekip gerekmediğini MapReduce çerçevesine bağlıdır, bu nedenle birleşicinin kodunun, nihai sonuçların çoklu çalıştırmadan etkilenmediğini garanti altına alması kritiktir. Birleştiriciyi çalıştırmak, aksi takdirde ağ üzerinden aktarılması gereken ara verilerin miktarını azaltarak bir performans avantajı sağlayabilir.
Bu, redüktör görevlerinin yapması gereken işleme miktarını da düşürür. Burada fazladan bir görev yürütüyorsunuz, bu nedenle herhangi bir performans kazanımının ihmal edilebilir olması veya genel performansın kötüleşmesine neden olabilir. Kilometre farklιlιk gösterebileceğinden, bunu dikkatli bir şekilde test edin.
Eşleyici görevlerinin tüm sonuçları redüktör görev düğümlerine kopyalanırlarsa, bu dosyalar birleştirilir ve sıralanır.