Docker - Можно ли ссылаться на файл из контейнера Docker локально? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть кластер Spark, работающий в контейнере Docker (используя изображение, которое я сделал сам).Все работает нормально.

Теперь я хочу использовать Apache Livy, и в соответствии с документацией говорится, что мне нужно получить пару переменных среды: https://livy.incubator.apache.org/get-started/

export SPARK_HOME=/usr/lib/spark
export HADOOP_CONF_DIR=/etc/hadoop/conf

Мой вопрос заключается в том, что Spark работает в Docker, а не в локальной установке, какие варианты я должен ссылаться на эти 2 директории в экспорте.

На самом деле это общая проблема, с которой я сталкиваюсь, поэтому любая помощь по рекомендациям будетдействительно помогите.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Вы можете создать том.Том - это общая папка между вашей машиной и докером.

docker run -v /home/userName/Docker/spark:/usr/lib/spark \
           -v /home/userName/Docker/hadoop:/etc/hadoop/ \
           ...

Затем вы можете создать переменные среды по своему пути.export SPARK_HOME=/home/userName/Docker/spark и export HADOOP_CONF_DIR=/home/userName/Docker/hadoop/conf должны работать с этим примером.

0 голосов
/ 16 апреля 2019

Самый простой вариант - установить livy вместе с spark внутри того же контейнера-докера, на котором запущена spark, и открыть необходимые порты снаружи.

Лучшим решением было бы создать отдельный контейнер для livy (с той же конфигурациейфайлы используются в /usr/lib/spark и /etc/hadoop/conf) и подключаются через docker-сеть.И только открывать порты Ливи снаружи.

...