#docker #apache-spark #livy
#docker #apache-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 каталога в экспорте.
На самом деле это распространенная проблема, с которой я сталкиваюсь, поэтому любая помощь в отношении лучших практик действительно поможет.
Спасибо.
Ответ №1:
Самым простым вариантом было бы установить livy вместе со spark внутри того же контейнера docker, в котором работает spark, и выставить необходимые порты снаружи.
Лучшим решением было бы создать отдельный контейнер для livy (с теми же конфигурационными файлами, которые используются в /usr/lib/spark
и /etc/hadoop/conf
) и подключиться с помощью docker-network. И выставлять только внешние порты livy.
Ответ №2:
Вы можете создать том. Том — это общая папка между вашим компьютером и вашим docker.
docker run -v /home/userName/Docker/spark:/usr/lib/spark
-v /home/userName/Docker/hadoop:/etc/hadoop/
...
Затем вы можете создать переменные среды для своего path. export SPARK_HOME=/home/userName/Docker/spark
и export HADOOP_CONF_DIR=/home/userName/Docker/hadoop/conf
должен работать с этим примером.