Я устанавливаю hadoop-0.20.2 используя докер. У меня есть два файла: один для установки java, а другой - для установки hadoop. Я начинаю услуги, используя команду CMDВозможно ли выполнить CMD в середине файла докеров?
cmd ["path/to/start-all.sh"]
Теперь я хочу, чтобы написать третью dockerfile, который выполняет пример Map-Reduce работы. Но проблема в том, что
Третий файл докеры зависит от второго файла файла досуга. например:
FROM sec_doc_file
RUN /bin/hadoop fs -mkdir input
Для его использования требуются услуги hadoop. Но услуги hadoop будут запущены только после запуска второго файла докеров. Но я хочу запустить его как часть третьего файла докеров, прежде чем запускать работу MR? Является ли это возможным? Если да, укажите пример. Если нет, то какими могут быть другие возможности?
#something like
From sec_doc_file
#Start_Service
RUN /bin/hadoop fs -mkdir input
#continue_map_reduce_job
Так что я не могу разделите его на два файла докеров? что, если мне нужно добавить n количество строк для работы с уменьшением карты? –
Вы можете отделить его в файлах докеров, но каждый раз, когда вы запускаете команду, требующую запуска службы для выполнения другой команды, вам нужно выполнить команду, отличную от команды, в той же строке. Изменения, которые вы выполняете (т. Е .: создание файлов в HDFS), будут сохраняться между слоями и док-файлами, но демоны не будут работать между ними. О работе с MR, предполагается ли она запускаться во время сборки докеров? –
Я бы запустил его в скрипте, запущенном в CMD-команде. –