Автоматизированное интеграционное тестирование для искровой работы
Я использую плагин FailSafe от Maven вместе с плагином Maven-Docker-Plugin для реализации автоматического тестирования интеграции для искровой работы.
Мой проект зарегистрирован здесь
https://github.com/abhitechdojo/maven-scala-spark
Мой Docker-файл для запуска искровой работы выглядит следующим образом
FROM cloudera/quickstart
MAINTAINER abhishek "http://www.foobar.com"
# COPY THE UBER JAR IN THE / OF THE FILE SYSTEM
ADD /SparkIntegrationTestsAssembly.jar /
# CREATE INPUT DIRECTORY
CMD ["hadoop", "fs", "-mkdir", "-p", "/input"]
# COPY INPUT FILES
CMD ["hadoop", "fs", "-put", "/twitter.avro", "/input/twitter.avro"]
EXPOSE 8020:8020
EXPOSE 50070:50070
EXPOSE 50010:50010
EXPOSE 50020:50020
EXPOSE 50075:50075
EXPOSE 8030:8030
EXPOSE 8031:8031
EXPOSE 8032:8032
EXPOSE 8033:8033
EXPOSE 8088:8088
EXPOSE 8040:8040
EXPOSE 8042:8042
EXPOSE 10020:10020
EXPOSE 19888:19888
EXPOSE 11000:11000
EXPOSE 8888:8888
EXPOSE 18080:18080
EXPOSE 7077:7077
# RUN ALL SERVICES
ENTRYPOINT ["/usr/bin/docker-quickstart"]
# RUN SPARK JOB
CMD ["spark-submit", "--class", "com.abhi.HelloWorld", "--master", "local[2]", "SparkIntegrationTestsAssembly.jar", "/input", "/output"]
Но когда я пытаюсь запустить контейнер на основе этого изображения... он просто продолжает говорить
[INFO] Waiting for container 'cloudera/quickstart' to finish startup (max 10000 sec.)
[INFO] Waiting for container 'cloudera/quickstart' to finish startup (max 10000 sec.)
[INFO] Waiting for container 'cloudera/quickstart' to finish startup (max 10000 sec.)
[INFO] Waiting for container 'cloudera/quickstart' to finish startup (max 10000 sec.)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:50 min
[INFO] Finished at: 2016-04-15T01:45:02-05:00
[INFO] Final Memory: 37M/831M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.wouterdanes.docker:docker-maven-plugin:5.0.0:start-containers (start) on project SparkIntegrationTest: Execution start of goal net.wouterdanes.docker:docker-maven-plugin:5.0.0:start-containers failed: java.net.SocketException: Socket closed -> [Help 1]
Мой POM.xml слишком велик для размещения здесь, но позвольте мне предоставить ссылку здесь
https://github.com/abhitechdojo/maven-scala-spark/blob/master/pom.xml
Я надеялся, что maven-docker-plugin запустит образ на основе моего dockerfile. файл инициирует все сервисы через точку входа, а затем запускает задание spark с помощью spark-submit. плагин будет ждать, чтобы увидеть строку "Остановка контекста искры".
Как только эта строка будет видна, будут запущены интеграционные тесты, которые проверит данные, полученные заданием на искру.
но почему-то плагин просто ждет вечно. Я попытался увеличить время ожидания до 2000, но все еще такое же поведение.