Hadoop

2013-02-22 26 views
6

'da işlenmeden önce redüktör giriş yineleyici değerini sıralayın Değer türü Iteratörü ile redüktöre gelen bazı giriş verileri var. Bu değerler listesini artan düzende nasıl sıralayabilirim?Hadoop

Tüm redüktörleri işlemeden önce, zaman değerleri olduklarından bunları sırayla sıralamalıyım.

+0

:
Burada ikincil tür konularda çok iyi bir açıklaması var. – mohit6up

cevap

4

Hadoop yerleşik özellikleri kullanarak redüktör giriş değerlerinin sıralama elde etmek için, bunu yapabilirsiniz:

1.Modify haritası çıktı anahtarı - İlgili value.Emit ile bu kompozit anahtarı ve değerini haritası çıktı anahtarını ekleyin haritadan itibaren, hadoop sıralama için varsayılan olarak tüm anahtarı kullanır, harita çıktı kayıtları (eski anahtar + değeriniz) ile sıralanır.

2. 1. adımda sıralama yapılsa bile, süreçte harita çıkış anahtarını manipüle etmiş olursunuz.Ayrıca, varsayılan olarak anahtarı temel alarak Bölme ve Gruplama yapar.

3.Since size kompozit anahtarın eski yani anahtar, sadece ilk bölümü dayalı çalışır orijinal anahtar, partitioner ve GroupingComparator değiştirerek bakmak Eğer ihtiyaç değiştirdiniz. Partitioner - aynı Reducer örneğindeki hangi anahtar/değer çiftlerinin toplanacağına karar verir.
GroupComparator - Redüktöre indirilenler arasında hangi anahtar/değer çiftlerinin aynı indirgeme yöntemi çağrısına gittiğine karar verir.

4.Kesin (ve belli ki) eski anahtar almak için redüktördeki giriş anahtarının ilk kısmını çıkarmanız gerekir.

daha (ve daha iyi) bir cevap gerekiyorsa, Hadoop Kesin Kılavuzu 3rd Edition dönüp -> bölüm 8 -> sıralama -> Eğer İkincil Sıralama denir istedi Ne ikincil sıralama

+0

Tam olarak, David Gruzman bu http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/ hakkında iyi bir örnek atıfta bulundu –