在本地计算机上使用Jupyter Notebook远程运行代码的方法

11
我使用Jupyter Notebook来运行生物信息学分析,非常喜欢它。但是,只有在我的个人电脑上运行时才能真正发挥其作用。然而,我经常使用具有多个核心的远程计算机进行分析以减少处理时间。我希望能够在我的个人电脑上使用Jupyter Notebook界面,而实际上所有东西都在远程计算机上运行。通常,我通过shell中对远程计算机的ssh访问并在命令行中执行所有命令来完成此操作。我希望能够从我的个人电脑上的Jupyter笔记本中完成这项工作,而不是从个人电脑的shell中完成。需要注意的是,我没有远程计算机上的sudo权限。
到目前为止,我已经像这样在远程计算机上安装了miniconda和jupyter notebook:
wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

一旦正确安装了conda,我可以使用以下命令通过miniconda安装jupyter notebook:
conda install jupyter

安装成功。接下来,我可以使用以下命令在远程机器上启动jupyter笔记本:

jupyter notebook --no-browser

到目前为止,一切都很好。我的下一个问题是:我如何让本地的Jupyter笔记本连接到远程机器,以便我可以使用本地的Jupyter笔记本在远程机器上执行命令?这里有一些文档(点击此处),但我已经尝试了几个小时不同的方法,但没有成功。
有人能给出一个简单明了的方法来连接到我的远程服务器吗?鉴于我已经做到了这一点,我觉得只需要在本地Jupyter笔记本中输入URL地址和密码即可(在Shell中通过SSH做所有这些都非常容易)。

1
本文档描述了如何保护笔记本服务器并在公共接口上运行它。这些文档不告诉您如何将远程工作笔记本连接到在您的笔记本电脑上运行的主笔记本。这些文档告诉您如何启用从任何Web浏览器连接到远程Jupyter笔记本。您可以使用任何Web浏览器访问远程笔记本,并且可以访问远程计算机上的CPU和数据。如果您需要从本地计算机获取某些文件,则必须手动将它们复制到远程计算机。 - Paul
@Paul 谢谢你的澄清! - colin
我还没有测试过,但这可能是相关的。https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh - colin
@colin,你有没有得到这个问题的答案?我问这个问题是因为两个答案都没有理解在本地运行笔记本并执行远程执行的重点。 - Greg Hilston
@GregHilston 没有,从来没有得到一个好的答案,正如你所指出的,下面的回答都没有解决核心问题(尽管它们很有帮助!)据我所知,Jupyter笔记本对于在多个计算环境中工作的人来说并不是一个好的解决方案。 - colin
我也在寻找这个问题的答案,但是越想越明白,我实际上是在问“如何从Python中远程运行计算?”因为Jupyter只是一个高级的解释器界面。我在这里找到了一些关于如何做到这一点的答案:https://stackoverflow.com/a/27412611/429596 - undefined
2个回答

6

请按照以下步骤进行:
在远程计算机上启用端口转发

ssh -N -f -L 127.0.0.1:8898:127.0.0.1:8898 user@remote-machine.com

请在本地机器上运行 ssh 命令连接到远程机器,然后在远程机器上运行以下命令:

jupyter-notebook --no-browser --port=8898

您将看到以下内容:
    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
http://localhost:8898/token=eaf2f51f9c053f43d8bd093e76f0cc6301b545549c998fa2&token=eaf2f51f9c053f43d8bd093e76f0cc6301b545549c998fa2

复制并粘贴URL到你本地电脑的浏览器中。


3
我不认为这回答了问题。他想要在本地运行Notebook,就像在他的个人笔记本电脑上的Jupyter Notebook一样,并利用远程计算机进行处理。这个回答在远程机器上同时运行Notebook和执行。 - Greg Hilston

3
如果您想远程访问在VPS上运行的Jupyter/Ipython笔记本,我在digital ocean社区网站上撰写了一篇教程。 如指南所示,在服务器上使用命令行安装和运行Ipython Notebook后,您可以使用Putty(Windows)或Unix-like系统(即Mac和Linux)上的ssh -L命令通过SSH隧道连接到笔记本。

3
我看不出这怎么回答问题。问题是关于在本地运行笔记本,但要能够在远程主机上执行命令。这更像是 https://github.com/takluyver/bash_kernel,但不是在本地 shell 中运行命令,而是通过 ssh 在远程 shell 中运行命令。 - Roman-Stop RU aggression in UA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接