我有一个运行在Docker容器中的Spark集群(使用我自己创建的映像)。一切正常。
我现在要使用Apache Livy,并且根据它说的文档,我需要放置几个环境变量: https://livy.incubator.apache.org/get-started/
export SPARK_HOME=/usr/lib/spark
export HADOOP_CONF_DIR=/etc/hadoop/conf
我的问题是,由于Spark在Docker中运行而不是在本地安装,因此我必须在导出中引用这两个目录有哪些选项。
这实际上是我面临的常见问题,因此任何有关最佳做法的帮助都将真正帮助您。
谢谢。
答案 0 :(得分:0)
最简单的选择是将livy和spark一起安装在运行spark的同一个docker容器中,并在外部暴露所需的端口。
一个更好的解决方案是为livy创建一个单独的容器(使用/usr/lib/spark
和/etc/hadoop/conf
中使用的相同配置文件)并使用docker-network连接。并且只将livy端口暴露在外面。
答案 1 :(得分:0)
您可以创建一个卷。卷是您的计算机和docker之间的共享文件夹。
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
应该适用于此示例。