Nano Hash - криптовалюты, майнинг, программирование

Проблема при создании контейнера Kubernetes Docker для Spark с использованием файла Dockerfile, предоставленного с исходным кодом Spark

Я пытаюсь создать контейнер Kubernetes для Spark, используя инструкции, содержащиеся в исходном коде Spark. Я использую предоставленный здесь файл Docker: https://github.com/apache/spark/blob/branch-2.4/resource-managers/kubernetes/docker/src/main/dockerfiles/spark/Dockerfile

Однако пути, указанные в Dockerfile, не соответствуют структуре папок исходного кода Spark. Например,

  1. В исходном коде нет каталога jar. Но файл докера делает «КОПИРОВАТЬ jars / opt / spark / jars»
  2. Entrypoint.sh находится в 'resource-manager / kubernetes / docker / src / main / dockerfiles / spark / entrypoint.sh', но файл Docker пытается скопировать его из "COPY $ {img_path} /spark/entrypoint.sh /" opt / "где" ARG img_path = kubernetes / dockerfiles "
  3. Точно так же "COPY $ {k8s_tests} / opt / spark / tests", похоже, также имеет неправильный исходный каталог.

Что мне не хватает?


  • Почему бы не извлечь изображение из hub.docker.com/r/sequenceiq/spark вместо того, чтобы строить самому? 11.07.2019
  • Я удалил тег kubernetes, так как на самом деле я не вижу в вопросе ничего, имеющего отношение к Kubernetes. 11.07.2019

Ответы:


1

Чтобы ответить на вопрос "Что мне не хватает?" будет то, что они не используют простой docker build -t <tag> . из этого каталога. Вместо этого у них есть сценарий сборки по адресу https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh, который, среди прочего, проверяет, созданы ли сначала jar-файлы, на https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh#L155-L157

В дополнение к этому, он фактически создает структуру папок и копирует скрипты и зависимые файлы на место по адресу https://github.com/apache/spark/blob/6c2d351f5466d42c4d227f5627bd3709c266b5ce/bin/docker-image-tool.sh.#L89-L127, поэтому вы тоже увидеть ошибки из-за отсутствия entrypoint.sh и других аргументов.

Редактировать:

Ранее я добавлял кое-что об использовании официального изображения, упомянутого @cookiemonster, но затем я заметил, что на самом деле это не официальное изображение. Мне не удалось найти ни одного опубликованного официального изображения Apache, поэтому я удалил этот комментарий. Вы определенно можете использовать созданный кем-то образ. Но вы можете принять это решение, поскольку я не хочу рекомендовать какие-либо случайные изображения, которые я не могу проверить самостоятельно, если они не поддерживаются в апстриме.

11.07.2019
  • Да ! Совершенно верно. Вот более подробная информация: Я загрузил исходный код и попытался запустить docker build -t spark:latest -f kubernetes/dockerfiles/spark/Dockerfile . Это не предназначено для этого. Сначала вам нужно запустить ./make-distribution с -PKubernetes. Это дает вам дистрибутив Spark в формате .tgz. Когда вы разархивируете его, вы увидите структуру каталогов, как и ожидалось в Dockerfile. 12.07.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..