【问题标题】:Connect to remote python kernel from python code从 python 代码连接到远程 python 内核
【发布时间】:2020-01-30 00:40:45
【问题描述】:

我一直在使用PaperMill 定期执行我的 python 笔记本。要执行计算密集型笔记本,我需要连接到在我的 EMR 集群中运行的远程内核。

如果是 Jupyter notebook,我可以通过使用 jupyter notebook --gateway-url=http://my-gateway-server:8888 启动 jupyter 服务器来做到这一点,并且我可以在远程内核上执行我的代码。但是如何让我的本地 python 代码(通过 PaperMill)使用远程内核?在内核管理器中进行哪些更改以连接到远程内核?

我能找到的一个相关的 SO 答案是 here。这建议对远程服务器进行端口转发,并使用来自服务器的连接文件初始化 KernelManager。我无法做到这一点,因为 blockingkernelmanager 不再在 Ipython.zmp 中,我也更喜欢像 jupyter 那样的 HTTP 连接。

【问题讨论】:

    标签: python python-3.x jupyter-notebook jupyter papermill


    【解决方案1】:

    Hacky 方法 - 设置一个 shell 脚本来执行以下操作:

    1. 使用hadoop 用户在您的 EMR 主节点上创建一个 python 环境
    2. 在您的环境中安装 sparkmagic 并按照 sparkmagic 的 README.md 文件中的说明配置所有内核
    3. 将您的笔记本复制到主节点/直接从 s3 位置使用它
    4. 与造纸厂一起运行:

      papermill s3://path/to/notebook/input.ipynb s3://path/to/notebook/output.ipynb -p param=1

    如果您的集群主节点每次都相同,则第 1 步和第 2 步是一次要求。

    稍微好一点的方法:

    1. 在你的 Jupyter 中设置一个远程内核:REMOTE KERNEL
    2. 通过选择此远程内核,像普通笔记本一样使用 papermill 执行

    我将这两种方法用于不同的用例,目前它们似乎工作正常。

    【讨论】:

      猜你喜欢
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多