Tüm redüktörlerime belirli bir kaydı nasıl gönderebilirim?Hadoop tüm redüktörlere kayıt gönder
Partitioner sınıfını ve ne yaptığını biliyorum, ancak kayıtların tüm redüktörlere gittiğinden emin olmanın kolay bir yolunu göremiyorum.
Temelde, Partitioner bu yöntemi vardır: Mapper rekoru azaltmak sayısına eşit bir kaç kez çıkışının tutar şu şekildedir: Benim ilk fikir birliği partitioner ve Mapper sahip olmaktı
int getPartition(K2 key,
V2 value,
int numPartitions)
Görevler ve Partitioner tüm inters'ı (0'dan numPartitions-1'e) döndürür, böylece kayıt tüm bölümlere ulaşır.
Bunu çözmenin başka daha akıllı yolları var mı? Mesela, tüm bölümlere gönderdiğim kayıtlar için -1 değerini döndürüyorum ve çerçeve, geri döndüğü zaman -1'i gördüğünde bunu yapıyor.
Ayrıca, bu yanıtı ihtiyaç duyacağınız gruplama karşılaştırıcısına göre güncellemem gerekiyor. –
Ben de böyle düşünüyordum. Çok açık bir şekilde tarif etmedim ve Partitioner nesnesinde geri dönmesi gereken bir sonraki bölümün kaydını tutmak için bir sayaç sahibi olmayı düşünüyorum. Ancak, bunun bir çözüm olduğundan emin değilim çünkü Partitioner nesnesi GC-ed ve sayaç sıfırlama olabilir. Gruplama karşılaştırıcısıyla ilgili olarak, bunun açıklamamış olduğum şartlara bağlı olduğunu düşünüyorum. Gerekirse geri geleceğim. Teşekkürler! – Razvan