齐柏林飞艇码头解释器配置



我在本地系统中创建了一个齐柏林飞艇码头工人映像,并通过 maven 存储库配置了 Spark 解释器并运行了齐柏林飞艇它工作了。但是当我停止 Docker 并再次运行时,解释器绑定消失了。如何解决这个问题?我希望该解释器绑定一次性,以便当我停止 docker 并再次运行时,它必须按原样存储这些解释器绑定。

您需要 3 个卷来持久化配置、笔记本和日志。
注意:如果添加了自定义解释器,则需要为解释器二进制文件增加一个卷。

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

运行挂载上述卷的容器。

docker run -d --restart always -p 8080:8080 -v zeppelin-conf:/zeppelin/conf -v zeppelin-notebook:/zeppelin/notebook -v zeppelin-logs:/zeppelin/logs -v zeppelin-interpreter:/zeppelin/interpreter 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
口译员:/zeppelin/interpreter

编辑:/zeppelin目录是 docker 镜像的默认主目录。请参阅 Dockerfile。因此,您无需指定ZEPPELIN_NOTEBOOK_DIR、ZEPPELIN_LOG_DIR或ZEPPELIN_INTERPRETER_DIR环境变量。

将文件挂载到 docker 运行中很容易 - 只需将其传递到 --volume 参数中即可。但是在齐柏林飞艇的情况下,那里预配置了一些参数,所以用空文件替换它很可能不是你想要实现的。因此,我可以建议首先从容器中获取具有默认内容的文件,然后在下次运行时挂载到该文件。请按照分步说明进行操作:

  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. 现在我们可以将其用作绑定挂载。

    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
      

解释器绑定存储在conf/interpreter.json中。需要使用外部interpreter.json文件。

最新更新