从 python 代码连接到远程 python 内核



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

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

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

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

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

    Papermill S3://path/to/notebook/input.ipynbs3://path/to/notebook/output.ipynb -p param=1

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

稍微好一点的方法:

  1. 在 Jupyter 本身中设置一个远程内核:远程内核
  2. 通过
  3. 选择此远程内核,将造纸厂作为普通笔记本执行

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

相关内容

  • 没有找到相关文章

最新更新