Zincirleme birden fazla Hadoop MapReduce işleri
MapReduce uygulamak gerçek hayatta birçok durumda, son algoritmaları birkaç MapReduce adım olmuyor.
I. e. Map1 , Reduce1 , Map2 , Reduce2 , vb.
Bir sonraki harita için girdi olarak gerekli geçen azaltmak çıktısı var.
Ara veri (genel) boru hattı başarıyla tamamlandıktan sonra devam etmek istemediği bir şeydir. Ayrıca, çünkü bu ara veri genel bazı veri yapısı (bir 'göster' veya 'set') kalmak istemeyiz çok fazla çaba yazma ve okuma bu anahtar-değer çiftleri.
Hadoop bunu yapmak için önerilen yolu nedir?
Doğru yol, temizlik sonrasında da dahil olmak üzere bu ara veri işlemek için nasıl gösterir (basit) bir örnek var mı?
Teşekkürler.
CEVAP
Yahoo geliştirici ağı bu öğretici size bu konuda yardımcı olacağını düşünüyorum: Chaining Jobs
Bu JobClient kullanın.() runJob. İlk iş verilerin çıkış yolu ikinci bir iş için giriş yolu haline gelir. Bu uygun kod ile işleri için bağımsız değişken olarak geçirilen için onları ayrıştırmak ve bu iş için parametreleri ayarlamak gerekiyor.
Yukarıdaki yöntem, ancak şimdi eski mapred API bu şekilde olabileceğini düşünüyorum, ama yine de çalışması gerekir. Yeni mapreduce API benzer bir yöntem olacak ama ne olduğundan emin değilim.
Bir iş çıkardıktan sonra ara veri kodunuzu yapabilirsiniz bitinceye kadar. Yaptım daha önce yolu gibi bir şey kullanarak
FileSystem.delete(Path f, boolean recursive);
Bu yol nereye verilerin HDFS üzerinde yer almaktadır. Sadece başka bir iş gerektirir sonra bu verileri silmek emin olmanız gerekir.
Nasıl powershell'de bir fonksiyonu bir...
Birden fazla rol denetleyicisi eylem e...
Birden çok iş parçacığı kullanılabilir...
R bir komut dosyası içinde birden fazl...
Birden fazla satır kodu Javadoc yorum ...