İçindekiler:
Video: Create and Execute MapReduce in Eclipse 2024
Büyük uygulama projeleri için MapReduce ile gerçek uygulama kodunu optimize etmekten başka, güvenilirlik ve performansı artırmak için optimizasyon teknikleri. Bunlar üç kategoriye ayrılır: donanım / ağ topolojisi, senkronizasyon ve dosya sistemi.
Büyük veri donanımı / ağ topolojisi
Uygulamanızdan bağımsız olarak, en hızlı donanım ve ağlar muhtemelen yazılımınız için en hızlı çalışma sürelerine neden olacaktır. MapReduce'un belirgin bir avantajı, pahalı olmayan emtia donanımları ve standart ağlar kümeleri üzerinde çalışabilme olanağıdır. Sunucularınızın fiziksel olarak nerede organize edildiğine dikkat etmiyorsanız, büyük veri görevlerini desteklemek için gerekli en iyi performansı ve yüksek düzeyde hata toleransına sahip olamayacaksınız.
Emtia donanımı genellikle veri merkezinde raflarda saklanır. Rafın içindeki donanımın yakınlığı, veri ve / veya kodu raftan rafta taşımaktan ziyade bir performans avantajı sunar. Uygulama sırasında, MapReduce motorunuzu bu yakınlığın farkında olacak ve onun avantajlarından yararlanacak şekilde yapılandırabilirsiniz.
Verileri ve kodu bir arada tutmak, MapReduce performansı için en iyi optimizasyondan biridir. Özünde, donanım işleme elemanları birbirine daha yakındır, daha az gecikme ile uğraşmak zorunda kalırsınız.
Büyük veri senkronizasyonu
Eşlemenizin tüm sonuçlarını düğümün içinde tutmanız yetersiz olduğundan, senkronizasyon mekanizmaları, eşleme sonuçlarını, tamamlandıktan hemen sonra azaltan düğümlere kopyalar; işleme hemen başlayabilir. Aynı anahtardan gelen tüm değerler, daha yüksek performans ve daha iyi etkinlik sağlayan aynı redüktöre gönderilir.
Redüksiyon çıktıları doğrudan dosya sistemine yazılır, bu nedenle en iyi sonuç için tasarlanmalı ve ayarlanmalıdır.
Büyük veri dosya sistemi
MapReduce uygulamanız dağıtılmış bir dosya sistemi tarafından desteklenir. Yerel ve dağıtılmış dosya sistemleri arasındaki en büyük fark kapasitedir. Büyük bir veri dünyasındaki büyük miktardaki bilgileri işlemek için, dosya sistemlerinin bir ağdaki birden fazla makineye veya düğüme yayılması gerekir.
MapReduce uygulamaları, ana düğümün tüm meta verileri, erişim haklarını, eşlemelerini ve dosya ve blokların konumunu depoladığı bir ana-köle stiline dayanır. Köle, gerçek verilerin saklandığı düğümlerdir. Tüm talepler ana makineye gider ve uygun bağımlı düğüm tarafından işlenir.Dosya sisteminin tasarımını düşündüğünüzde aşağıdakileri göz önünde bulundurmalısınız:
-
Sıcak tutun: Beklediğiniz gibi ana düğüm işe yaramayabilir, çünkü her şey burada başlar. Ayrıca, ana düğüm başarısız olursa, ana dosya geri yüklenene kadar tüm dosya sistemi erişilemez. Çok önemli bir optimizasyon, çevrimiçi ana cihazda bir sorun olursa servise atılabilen "sıcak bekleme" ana düğüm oluşturmaktır.
-
Daha iyi olandan o kadar büyük olur: Dosya boyutu da önemli bir husustur. Bir sürü küçük dosya (100MB'den daha küçük) kaçınılmalıdır. MapReduce motorlarını destekleyen dağıtılmış dosya sistemleri, mütevazı sayıda büyük dosya ile doldurulduğunda daha iyi çalışır.
-
Uzun görüş: İş yükleri toplu olarak yönetildiğinden, yüksek düzeyde sürekli ağ bant genişliği, haritaları veya redüktörlerin hızlı yürütme sürelerinden daha önemlidir. En iyi yaklaşım, kod okunurken ve dosya sistemine yazma zamanı geldiğinde çok sayıda veri akışı içindir.
-
Güvenli tutun: Ancak fazla değil. Dağıtık dosya sistemine güvenlik katmanları eklenmesi, performansını düşürecektir. Dosya izinleri, istenmeyen sonuçlardan korunmak için vardır, kötü niyetli davranışlar değildir. En iyi yaklaşım yalnızca yetkili kullanıcıların veri merkezi ortamına erişmesini sağlamak ve dağıtılmış dosya sistemini dışarıdan korumaktır.