Я новый два linux, и для моего проекта мы используем hasoop.Now мы написали 3 программы mapreduce таким образом, что выход 1-й программы вводится во вторую программу и вывод 2-й программы вводится в третью. Но мы запускаем 3 разных метода conf, сначала мы запускаем конфигурацию 1-й программы, а затем 2-го и после этого третьего. Теперь мы хотим, чтобы два запускали все три программы один за другим, это возможно используя задание cron в linux, если да, пожалуйста, укажите шаги. Мы хотим использовать два cron-задания, потому что нам нужно два запускать 3-программы в течение нескольких часовИспользование задания Cron для запуска программы hadoop в linux
ответ
лучший способ справиться с этим случаем - это подход с привязкой к цепочке.
http://gandhigeet.blogspot.in/2012/12/as-discussed-in-previous-post-hadoop.html
я отправляю код драйвера для вызова три задания MapReduce ..
public class ExerciseDriver {
static Configuration conf;
public static void main(String[] args) throws Exception {
ExerciseDriver ED = new ExerciseDriver();
conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
if(args.length < 2) {
System.out.println("Too few arguments. Arguments should be: <hdfs input folder> <hdfs output folder> ");
System.exit(0);
}
String pathin1 = args[0];
String pathout1 = args[1];
//Run first Map reduce job
fs.delete(new Path(pathout1+"_1"), true);
ED.runFirstJob(pathin1, pathout1+"_1");
ED.runSecondJob(pathout1+"_1", pathout1+"_2");
ED.runThirdJob(pathout1+"_2", pathout1+"3");
}
public int runFirstJob(String pathin, String pathout) throws Exception {
Job job = new Job(conf);
job.setJarByClass(ExerciseDriver.class);
job.setMapperClass(ExerciseMapper1.class);
job.setCombinerClass(ExerciseCombiner.class);
job.setReducerClass(ExerciseReducer1.class);
job.setInputFormatClass(ParagrapghInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(pathin));
FileOutputFormat.setOutputPath(job, new Path(pathout));
job.submit();
job.getMaxMapAttempts();
boolean success = job.waitForCompletion(true);
return success ? 0 : -1;
}
public int runSecondJob(String pathin, String pathout) throws Exception {
Job job = new Job(conf);
job.setJarByClass(ExerciseDriver.class);
job.setMapperClass(ExerciseMapper2.class);
job.setReducerClass(ExerciseReducer2.class);
job.setInputFormatClass(KeyValueTextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
FileInputFormat.addInputPath(job,new Path(pathin));
FileOutputFormat.setOutputPath(job, new Path(pathout));
boolean success = job.waitForCompletion(true);
return success ? 0 : -1;
}
public int runThirdJob(String pathin, String pathout) throws Exception {
Job job = new Job(conf);
job.setJarByClass(ExerciseDriver.class);
job.setMapperClass(ExerciseMapper3.class);
job.setReducerClass(ExerciseReducer3.class);
job.setInputFormatClass(KeyValueTextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
FileInputFormat.addInputPath(job,new Path(pathin));
FileOutputFormat.setOutputPath(job, new Path(pathout));
boolean success = job.waitForCompletion(true);
return success ? 0 : -1;
}
}
после того, как только запланировать .jar файл в кронтаб. или же вы можете также пойти с oozie.as мы упоминали в классе драйвера 3 MapReduce выполняется один за other.first выхода для второго один входа
1. Создайте скрипт с помощью & & в последовательно выполняйте свои программы. Выполните свою первую команду, а затем используйте &&
, затем вторую команду и так далее.
Ex: first command && second command && third command
2. Тип этого в терминале:
crontab -e
Это откроет cronjob редактор терминала.
Добавьте эту строку, чтобы запустить свой сценарий оболочки каждые 15 минут,
*/15 * * * * /path/to/your/shell/script
Для получения дополнительной справки о кронтабе см https://help.ubuntu.com/community/CronHowto
DELETE/КОПИЯ ВЫВОД КАТАЛОГ:
Если вы хотите во избежание использования каталога уже существует ошибка, удалите или скопируйте выходной каталог перед выполнением последовательных заданий хауопа. Добавьте это в сценарий оболочки, прежде чем команды Hadoop работы:
# Delete the output directory in HDFS
hadoop fs -rmr /your/hdfs/output/directory/to/be/deleted
# Copy the output directory from HDFS to HDFS
hadoop fs -mkdir /new/hdfs/location
hadoop fs -cp /your/hdfs/output/directory/to/be/copied/*.* /new/hdfs/location
# Copy from HDFS to local filesystem
sudo mkdir /path/to/local/filesystem
hadoop fs -copyToLocal /your/hdfs/output/directory/to/be/copied/*.* /path/to/local/filesystem
ПРИМЕЧАНИЕ: Если вы используете последнюю версию Hadoop, замените Hadoop фс с HDFS Dfs и -rmr с - rm -r. Не забудьте добавить "*. *" при копировании каталога, так как это скопирует все содержимое этой директории. Измените пути файла HDFS в соответствии с вашей конфигурацией.
Благодарим вас за ответ –
Выполнены ли шаги? –
i m сталкивается с проблемой с выполнением программы hadoop последовательно вопрос после исключения полного скрипта i hv two также записывает скрипт для удаления вывода? –
- 1. Решение для запуска запланированного задания cron в контейнере Docker?
- 2. Выражение Cron для запуска задания в определенную дату
- 3. Для приложения laravel добавить задания cron в сервер linux
- 4. Linux Cron вкладки Выражение для задания выполняются в разное время
- 5. Убить задание задания cron
- 6. Задача Cron для выполнения PHP-программы
- 7. Cron для запуска задания на первое воскресенье месяца
- 8. Запуск задания Cron
- 9. настройка задания cron в magento
- 10. Рабочий каталог для задания Cron
- 11. Создание задания cron для mysqldump
- 12. Выражение Cron для задания задачи
- 13. Рабочие задания Hadoop для запуска последовательно (одна работа за другой)?
- 14. Hadoop Выполнение задания
- 15. Использование is_cli_request() необходимо для задания cron в codeigniter
- 16. Использование разных hadoop-mapreduce-client-core.jar для запуска клана hadoop
- 17. Удаление старых файлов с использованием задания cron в Linux
- 18. Получить хосты для задания hadoop
- 19. Настройка задания cron для выполнения скрипта PHP
- 20. Создание файла задания cron
- 21. Задача Odoo Cron для запуска PoS
- 22. HowTo: Добавить задания В cron Под Linux или UNIX?
- 23. Выполнение задания Cron непрерывно
- 24. Синтаксис задания работы Cron
- 25. Остановить .htaccess блокировать задания cron
- 26. Ограничение времени запуска программы в Linux
- 27. Использование конечной точки облака Google для задания cron
- 28. Использование задания cron для проверки выполнения скрипта python
- 29. Создание задания cron в php
- 30. Запуск задания cron в symfony
Благодарим вас за ответ –