Конфигурация интерпретатора Zeppelin Docker - PullRequest
0 голосов
/ 25 октября 2018

Я создал образ докера Zeppelin в моей локальной системе, настроил Spark Interpreter через репозитории maven и запустил Zeppelin. Это сработало.Но когда я остановил Докер и снова запустился, привязка Интерпретатора исчезла.Как решить эту проблему?Я хочу, чтобы этот интерпретатор связывался один раз, чтобы, когда бы я ни остановил докер, снова запустил, он сохранил привязку интерпретатора как есть.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Смонтировать файл в Docker очень просто - просто передайте его в - параметр тома .Но в случае с zeppelin там предварительно настроены некоторые параметры, поэтому заменить его пустым файлом, скорее всего, не то, чего вы хотите достичь.Поэтому я мог бы рекомендовать сначала получить этот файл с содержимым по умолчанию из контейнера, а затем подключить его при следующем запуске.Пожалуйста, следуйте пошаговым инструкциям:

  1. Сначала мы подготовим конфигурацию по умолчанию для запуска гнезда.

    1. Запуск контейнера по умолчанию Временный :
      sudo docker run -d --name zeppelin-test apache/zeppelin:0.8.1
      
    2. И получить из него конфигурацию по умолчанию:
      mkdir -p conf
      sudo docker zeppelin-test cat /zeppelin/conf/interpreter.json > conf/interpreter.json
      

    Примечание 1 : он не будет использоваться для работы, поэтому большинство параметровневажно.Это нужно сделать один раз только для настройки!

    Примечание 2 : поскольку этот конфиг заполняется при запуске, к сожалению, вы не можете получить его за один запуск, как: sudo docker run --rm apache/zeppelin:0.8.1 cat /zeppelin/conf/interpreter.json

  2. Теперь мы можем использовать его в качестве bind-mount.

    1. Если вы используете метод прямого запуска docker без docker-compose , добавьтеопция, среди прочего: --volume $(pwd)/conf/interpreter.json:/zeppelin/conf/interpreter.json
    2. Но я рекомендую использовать docker-compose , поэтому там опция помещена под ключ volumes: как - ./conf/interpreter.json:/zeppelin/conf/interpreter.json.Полный пример:

      version: '3.7'
      
      services:
        zeppelin:
          image: apache/zeppelin:0.8.1
          ports:
            - "7077:7077"
            - "8080:8080"
          volumes:
            - ./logs:/logs
            - ./notebook:/notebook
            - ./conf/interpreter.json:/zeppelin/conf/interpreter.json
          environment:
            ZEPPELIN_NOTEBOOK_DIR: /notebook
            ZEPPELIN_LOG_DIR: /logs
      

      А затем просто запустите из этого каталога:

      docker-compose up -d
      
0 голосов
/ 27 мая 2019

Вам необходимо 3 тома для сохраняющихся конфигураций, включая интерпретаторы, записные книжки и журналы.

docker volume create zeppelin-conf
docker volume create zeppelin-notebook
docker volume create zeppelin-logs

Запустите контейнер с смонтированными выше томами.

docker run -d --restart always -p 8080:8080 -v zeppelin-conf:/zeppelin/conf -v zeppelin-notebook:/zeppelin/notebook -v zeppelin-log:/zeppelin/logs apache/zeppelin:0.8.1

Если вы просто хотите сохранить интерпретаторыВы можете использовать следующие строки:

docker volume create zeppelin-conf
docker run -d --restart always -p 8080:8080 -v zeppelin-conf:/zeppelin/conf apache/zeppelin:0.8.1

Файлы конфигурации, включая переводчики, расположенные по адресу: /zeppelin/conf
Записные книжки: /zeppelin/notebook
Журналы: /zeppelin/logs

0 голосов
/ 25 октября 2018

Привязки переводчика хранятся в conf/interpreter.json.Нужно использовать внешний interpreter.json файл.

...