Bir mapreduce işini main()
'dan ve ToolRunner.run()
arasındaki fark nedir? Ana dersin, MapReduce extends Configured implements Tool
olduğunu söylediğimizde, ana metottan sadece işin basit bir işini yapmak için elimizde olmayan ek ayrıcalıklarımız nelerdir? Teşekkürler.İşi aramadaki fark
cevap
Hiçbir ekstra ayrıcalıklar, ama komut satırı seçenekleri belirli yapılandırma özellikleri elde etmek ve ondan bir yapılandırma nesnesi yapılandırmak sağlayacak GenericOptionsParser aracılığıyla çalıştırmak olsun: ziyade Temelde
http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/util/GenericOptionsParser.html
ayrıştırma bazı olduğunu
hadoop jar myJar.jar com.Main prop1value prop2value
public static void main(String args[]) {
Configuration conf = new Configuration();
conf.set("prop1", args[0]);
conf.set("prop2", args[1]);
conf.get("prop1"); // will resolve to "prop1Value"
conf.get("prop2"); // will resolve to "prop2Value"
}
kadar mor Oldu: (listedeki argüman dizinini kullanarak) seçenekleri kendiniz, açıkça komut satırından yapılandırma özelliklerini yapılandırabilirsiniz e ToolRunner ile yoğunlaştırılmış: uyarı
hadoop jar myJar.jar com.Main -Dprop1=prop1value -Dprop2=prop2value
public int run(String args[]) {
Configuration conf = getConf();
conf.get("prop1"); // will resolve to "prop1Value"
conf.get("prop2"); // will resolve to "prop2Value"
}
Son bir kelime olsa: Yapılandırma yöntemini getconf() kullanırken, daha sonra, önce İş nesnesi oluşturmak çekin onun Yapılandırma dışarı - İş yapıcı Configruation nesnenin bir kopyasını yapar
public int run(String args[]) {
Configuration conf = getConf();
conf.set("prop3", "blah");
Job job = new Job(conf); // job will have a deep copy of conf
conf.set("prop4", "dummy"); // here we're amending the original conf
job.getConfiguration().get("prop4"); // will resolve to null
}
, herhangi Hadoop uygulama standard command line options Hadoop tarafından desteklenen işleyebilir) (ToolRunner .run kullanarak: Eğer geçirilen referans değişiklik yaparsa, size iş bu değişiklikleri gözle görülmeyecek kadar, içinde geçti. ToolRunner, dahili olarak GenericOptionsParser kullanır. Kısaca, komut satırı sağlanan hadoop özel seçenekleri ayrıştırılır ve uygulamanın Configuration nesnesine ayarlanır. Eğer sadece main() kullanırsanız, bu otomatik olarak gerçekleşmez. Örn.,
örn. Derseniz:
% hadoop MyHadoopApp -D mapred.reduce.tasks=3
Sonra
ToolRunner.run(new MyHadoopApp(), args)
otomatik
Configuration
nesnede 3'e değer parametresini
mapred.reduce.tasks
ayarlayacaktır.
Getirdiğimiz başka ayrıcalık yok. Tipik olarak insanlar hadoop işlerinde basitçe main() kullanmazlar. ToolRunner .run() kullanımı standart bir uygulamadır.
@ TejasP- Thanx a lot !! :) Evet, aklımda böyle belirsiz bir fikir vardı ama şimdi açık .. –
- 1. cron işi
- 2. Başka bir cron işi bitirdiğinde cron işi nasıl çalıştırılır?
- 3. Kovan İşi, bazen
- 4. Spark Akış İşi kurtarılamıyor
- 5. Arka Plan İşi Powershell'de
- 6. bir laravel işi
- 7. Quartz Zamanlayıcı İşi Otomatik Sonlandırma
- 8. Tail işi sonucu nasıl kaydedilir?
- 9. SQL Bir işi nasıl çalıştırırsınız?
- 10. arasındaki fark
- 11. Koşu cron işi ile Crontab işi Running</p> <p>...
- 12. Temizleme işi için cdc tutma değeri nasıl değiştirilebilir?
- 13. Node.js için bir Cron işi nasıl çalıştırılır
- 14. Hadoop Akış İşi Python'da Başarısız (Başarılı Değil)
- 15. Resque işi işleniyor, ancak hiçbir şey yapmıyor
- 16. E-posta Bildirimleri Gönderme için SQL İşi
- 17. UnicodeEncodeError sadece bir cron işi olarak çalıştırırken
- 18. Named ihracat bu işi yapar Neden
- 19. jenkins işi alt klasöre nasıl taşınır?
- 20. Azure web işi singleton işlevi kilitli
- 21. Mapreduce çalıştığında uygulamalar UU'da gösterilmiyor hadoop işi?
- 22. Linux'ta bir cron işi nasıl eklenir
- 23. Tomcat öldürüldüğünde kıl akımı yürütme işi
- 24. Python'da yazıcıya yazdırma işi nasıl gönderilir
- 25. AWS Emr'de Mxnet başarısızken Hadoop akış işi
- 26. Codeigniter bukle cron işi ve seanslar
- 27. Kelime sayımı mapreduce işi yürütülürken InterruptedException var
- 28. Raylar Kayıt Oluşturmak için Arkaplan İşi?
- 29. Harita Dağıtım için java'daki işi azaltın
- 30. Kuvars'da zamanlanmış bir işi nasıl iptal edersiniz
Bu, kodla ilgili iyi bir açıklamaydı. İlk önce Job nesnesini yaratma ve daha sonra konfigürasyonunu alma gibi birkaç nokta fark etmedim ama şimdi mantıklı geliyor .. –