Когда вы указываете -LIBJARS с помощью команды jad Hadoop.Сначала убедитесь, что вы редактируете свой класс драйвера, как показано ниже:
public class myDriverClass extends Configured implements Tool {
public static void main(String[] args) throws Exception {
int res = ToolRunner.run(new Configuration(), new myDriverClass(), args);
System.exit(res);
}
public int run(String[] args) throws Exception
{
// Configuration processed by ToolRunner
Configuration conf = getConf();
Job job = new Job(conf, "My Job");
...
...
return job.waitForCompletion(true) ? 0 : 1;
}
}
Теперь отредактируйте команду «hadoop jar», как показано ниже:
hadoop jar YourApplication.jar [myDriverClass] args -libjars path / to / jar / file
Теперь давайте разберемся, что происходит ниже.По сути, мы обрабатываем новые аргументы командной строки, реализуя ИНСТРУМЕНТ ИНТЕРФЕЙСА .ToolRunner используется для запуска классов, реализующих интерфейс Tool.Он работает в сочетании с GenericOptionsParser для анализа общих аргументов командной строки hadoop и изменяет конфигурацию инструмента.
В нашем Main () мы вызываем ToolRunner.run (new Configuration (), new myDriverClass (), args) - этот инструмент запускается Tool.run (String []), послепарсинг с заданными родовыми аргументами .Он использует данную конфигурацию или создает ее, если она пуста, а затем устанавливает конфигурацию инструмента с возможно измененной версией conf.
Теперь внутри метода run, когда мы вызываем getConf (), мы получаем измененную версиюКонфигурации. Поэтому убедитесь, что в вашем коде есть строка ниже.Если вы реализуете все остальное и по-прежнему используете конфигурацию conf = new Configuration (), ничего не будет работать.
Конфигурация conf = getConf ();