Например, у меня есть программа подсчета слов hadoop (из Интернета), WordCount.java:
public static class WordCount{
public static void main(String[] args)throws Exception{
....
Job job = Job.getInstance(new Configuration(), "word count");
job.setJarByClass(WordCount.class); //Why?
}
}
Скомпилируйте ее в банку и отправьте в пряжу следующим образом:
hadoop jar wordcount.jar WordCount [input-hdfs] [output-hdfs]
В этой команде мы указали:
(1) имя фляги (2) имя класса
Пока
hadoopИз командной строки уже известно, что «WordCount» - это имя класса из wordcount.jar.
Общедоступным классом WordCount.java всегда является WordCount, это стандарт Java, верно?
Тогда какой смысл вызывать
setJarByClass(WordCount.class)
Мне кажется это излишним.Почему требуется это утверждение?Спасибо