【问题标题】:Different Virtual Environments for each Zeppelin user每个 Zeppelin 用户的不同虚拟环境
【发布时间】:2021-12-14 11:46:41
【问题描述】:

我有一个在 EMR 集群中运行的 zeppelin。这个 zeppelin 有多个用户通过基于 Shiro 的身份验证方法登录到 zeppelin。我需要一种为每个用户创建虚拟环境的方法,以便他们可以管理自己的 pip 依赖项。我不想为全球所有用户安装 pip 库。相反,我需要一种方法让不同的用户在同一个 zeppelin 环境中使用不同的库版本。这在 Zeppelin 中是否可行?如果可以,如何实现?

【问题讨论】:

    标签: python virtualenv amazon-emr apache-zeppelin pyenv


    【解决方案1】:

    将“解释器绑定模式”设置为“隔离”(甚至“范围”)可能解决您的问题。

    在每个音符范围的情况下,隔离模式为每个音符运行一个单独的解释器进程。因此,每个音符都有一个绝对独立的会话。

    https://zeppelin.apache.org/docs/0.10.0/usage/interpreter/interpreter_binding_mode.html

    它本身不是一个 python 虚拟环境,但也许提供的隔离可以工作。

    【讨论】:

      【解决方案2】:

      在这里回答我自己的问题。

      这可以通过在 zeppelin 中配置 anaconda 并在每个用户的隔离模式下运行解释器来完成。 Zeppelin 内置了对 anaconda 的支持,只是需要进行一些配置才能使其工作。

      这些配置步骤是:-

      1. 创建指向 /bin/conda 的符号链接:ln -s /opt/anaconda3/bin/conda /bin/conda
      2. 创建指向 /bin/python 的符号链接:ln -s /opt/anaconda3/bin/python /bin/python
      3. 在 Python 的设置中 解释器,将 zeppelin.python 设置为 /opt/anaconda3/bin/python3
      4. 将 python 路径添加到 ~/.bashrc 导出 PATH=/home/hadoop/miniconda/bin:$PATH

      如果您使用 terraform 启动 zeppelin,则可以使用此 shell 脚本将 anaconda 设置为引导操作的一部分,

          #!/bin/bash
      
      sudo wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
      sudo bash ~/miniconda.sh -b -p $HOME/miniconda
      echo "export PATH=/home/hadoop/miniconda/bin:$$PATH" >> ~/.bashrc
      sudo ln -s /home/hadoop/miniconda/bin/conda /usr/bin/conda
      sudo conda install -y python=3.7 anaconda=custom
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-24
        • 2017-12-19
        • 1970-01-01
        • 2019-06-13
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多