从 python 代码连接到远程 python 内核
Posted
技术标签:
【中文标题】从 python 代码连接到远程 python 内核【英文标题】:Connect to remote python kernel from python code 【发布时间】: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 连接。
【问题讨论】:
【参考方案1】:Hacky 方法 - 设置一个 shell 脚本来执行以下操作:
-
使用
hadoop
用户在您的 EMR 主节点上创建一个 python 环境
在您的环境中安装 sparkmagic 并按照 sparkmagic 的 README.md 文件中的说明配置所有内核
将您的笔记本复制到主节点/直接从 s3 位置使用它
与造纸厂一起运行:
papermill s3://path/to/notebook/input.ipynb s3://path/to/notebook/output.ipynb -p param=1
如果您的集群主节点每次都相同,则第 1 步和第 2 步是一次要求。
稍微好一点的方法:
-
在你的 Jupyter 中设置一个远程内核:REMOTE KERNEL
通过选择此远程内核,像普通笔记本一样使用 papermill 执行
我将这两种方法用于不同的用例,目前它们似乎工作正常。
【讨论】:
以上是关于从 python 代码连接到远程 python 内核的主要内容,如果未能解决你的问题,请参考以下文章
如何连接到远程 Windows 机器以使用 python 执行命令?
获取VS代码Python扩展以连接到远程AWS EMR主节点上运行的Jupyter。