无法访问 Azure 深度学习虚拟机上的 Jupyter Notebooks

Posted

技术标签:

【中文标题】无法访问 Azure 深度学习虚拟机上的 Jupyter Notebooks【英文标题】:Can't reach Jupyter Notebooks on Azure Deep Learning Virtual Machine 【发布时间】:2018-09-11 05:43:54 【问题描述】:

我按照here的说明进行操作。

我通过 SSH 在 Ubuntu VM 上。 我试图访问 IP:8000 但 Chrome 说无法访问该站点。如文档中所述,默认情况下端口 8000 确实是打开的。

说明没有提到我是否必须启动jupyterhub,所以我尝试了一下并得到了这个错误 -

username@fastai:~ $ jupyterhub
[I 2018-04-02 00:25:41.018 JupyterHub app:871] Writing cookie_secret to /home/username/jupyterhub_cookie_secret
[I 2018-04-02 00:25:41.036 alembic.runtime.migration migration:117] Context impl SQLiteImpl.
[I 2018-04-02 00:25:41.037 alembic.runtime.migration migration:122] Will assume non-transactional DDL.
[I 2018-04-02 00:25:41.067 alembic.runtime.migration migration:327] Running stamp_revision  -> 3ec6993fe20c
[W 2018-04-02 00:25:41.388 JupyterHub app:955] No admin users, admin interface will be unavailable.
[W 2018-04-02 00:25:41.389 JupyterHub app:956] Add any administrative users to `c.Authenticator.admin_users` in config.
[I 2018-04-02 00:25:41.389 JupyterHub app:983] Not using whitelist. Any authenticated user will be allowed.
[E 2018-04-02 00:25:41.414 JupyterHub app:1525] Failed to bind hub to http://127.0.0.1:8081/hub/
[E 2018-04-02 00:25:41.414 JupyterHub app:1623]
    Traceback (most recent call last):
      File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/app.py", line 1621, in launch_instance_async
        yield self.start()
      File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/app.py", line 1523, in start
        self.http_server.listen(self.hub_port, address=self.hub_ip)
      File "/anaconda/envs/py35/lib/python3.5/site-packages/tornado/tcpserver.py", line 142, in listen
        sockets = bind_sockets(port, address=address)
      File "/anaconda/envs/py35/lib/python3.5/site-packages/tornado/netutil.py", line 197, in bind_sockets
        sock.bind(sockaddr)
    OSError: [Errno 98] Address already in use

在我阅读文档中有关 jupyterhub 的信息之前,我尝试启动 jupyter notebook,这给了我这个错误。

[C 04:00:12.963 NotebookApp] Bad config encountered during initialization:
[C 04:00:12.963 NotebookApp] No such notebook dir: ''/dsvm/Notebooks''

使用jupyter notebook --generate-config 生成配置文件并对其进行编辑后,它似乎运行良好,但尽管打开了所有端口,但我仍然无法通过 Chrome 访问它。

更新 今天我安装了一个 X2Go 客户端,在桌面上找到了jupyter notebook icon,但开始时抛出了这个错误 - 无法运行 Jupyter.desktop 解析桌面文件失败:密钥文件包含行 '/anaconda/pkgs/notebook-5.4.0-py27_0/info/icon.png' 这不是键值对、组或注释

看起来该文件调用了 jupyter notebook,它抛出了与以前相同的错误。

【问题讨论】:

您是否改用 Jupyter Lab 应用程序?它正在启动,您应该使用 https://:9999。对我来说,我输入了localhost:8000,Jupyter notebook 也可以正常工作。 8000 对我来说无法访问,所以我猜 9999 也不会工作。我看到的大多数博客文章都没有提到我面临的问题,所以我猜他们改变了图像一点点导致我的问题 @pradhyo 我在“应用程序”下通过“开发”中的下拉选项打开了 JupyterHub。我还为所有入站流量打开了端口 9999。这似乎奏效了。 【参考方案1】:

JupyterHub 应该在启动时在端口 8000 上运行。你能用 systemctl status jupyterhub 仔细检查它的状态吗?您是否在门户中仔细检查了 8000 端口是否打开?

如果 JupyterHub 报告它正在运行并正在侦听端口 8000,则可能是防火墙阻止了连接。在这种情况下,一些用户已经成功通过 SSH 转发端口 8000,然后连接到 localhost:8000。

【讨论】:

谢谢 Paul,我已经删除了虚拟机,现在无法检查。【参考方案2】:

这是由一个错误引起的,该错误已在深度学习 VM 的更高版本中得到修复。

更多详情请见this Github issue。

【讨论】:

以上是关于无法访问 Azure 深度学习虚拟机上的 Jupyter Notebooks的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows Azure虚拟机上配置外网能访问的FTP服务器

无法访问 Azure VM 上的 Neo4j webadmin

Azure Service Fabric 群集:无法为 RPC 访问机器 10.0.0.X

Azure Devops 无法从计算机上的注册表中找到 Dac Framework (SqlPackage.exe) 的位置

虚拟机上的Tomcat无法访问

监视 Azure 虚拟机上运行的服务/应用程序的最佳方法是啥