【问题标题】:What is default password for Jupyter created on google's data proc在谷歌的数据过程中创建的 Jupyter 的默认密码是什么
【发布时间】:2017-04-28 07:18:53
【问题描述】:

我使用此处链接中的步骤设置数据过程

https://cloud.google.com/dataproc/docs/tutorials/jupyter-notebook

但是我的电脑一直要密码

我没有设置任何密码。

我尝试了我的谷歌帐户密码,但它不起作用

我跑了../root$ sudo grep -ir password 并获得关注,以便确认没有设置密码

.jupyter/jupyter_notebook_config.py:## Hashed password to use for web authentication.
.jupyter/jupyter_notebook_config.py:#  The string should be of the form type:salt:hashed-password.
.jupyter/jupyter_notebook_config.py:#c.NotebookApp.password = u''
.jupyter/jupyter_notebook_config.py:#  Only used when no password is enabled.
.local/share/jupyter/runtime/nbserver-3668.json:  "password": false, 

【问题讨论】:

    标签: google-cloud-platform jupyter-notebook google-cloud-dataproc


    【解决方案1】:

    由于初始化操作只是使用conda install jupyter 从最新安装,这似乎是由最近的上游更改引起的,特别是将notebook 组件从4.2.3 升级到4.3.0 导致token-based auth to be turned on by default。几周前我使用开箱即用的 init 操作部署的最近集群没有您看到的相同登录名; init 操作的设计是让 Google Compute Engine 防火墙成为您的防御层,让 SSH 隧道成为您的安全连接,而不是依赖于来自不同 Hadoop/Spark 工具和 Web UI 的各种第三方身份验证实现。

    解决方案是在setup-jupyter-kernel.sh 中添加一行:

    echo "c.NotebookApp.token = u''" >> ~/.jupyter/jupyter_notebook_config.py
    

    完全禁用 jupyter 端身份验证并恢复到几周前的行为。请注意,如果您想自己执行此操作,则必须摆弄jupyter.sh 中的INIT_ACTIONS_REPOINIT_ACTIONS_BRANCH 设置,如果您尚未对其进行自定义,则可能需要一些时间来适应。我们会尽快推送修复程序,一旦完成,您应该能够使用开箱即用的 init 操作而不会再次导致登录屏幕。

    如果您已经有一个集群正在运行,您可以通过在 SSH 连接到主服务器后以 root 身份手动运行来禁用您的 jupyter 服务器的身份验证:

    sudo su
    killall -9 jupyter-notebook
    echo "c.NotebookApp.token = u''" >> ~/.jupyter/jupyter_notebook_config.py
    /dataproc-initialization-actions/jupyter/internal/launch-jupyter-kernel.sh
    

    或者,如果您确实想保留新的默认令牌授权方法,jupyter 服务器实际上会将生成的令牌记录到/var/log/jupyter_notebook.log;查找声明The Jupyter Notebook is running at: http://[all ip addresses on your system]:8123/?token=[some-token-string-here] 的行;该令牌字符串可以插入密码字段或显示的 URL 参数中。

    编辑:修复已将 now been committed 放入 Dataproc 的初始化操作存储库并同步到 gs://dataproc-initialization-actions。开箱即用的部署在 Jupyter UI 中无需额外的登录页面即可再次工作。

    如果您确实想要指定 Jupyter 也允许在 password 字段中使用的令牌,还添加了一个新的元数据选项,键为 JUPYTER_AUTH_TOKEN。仅当您想要一个请求指定令牌的登录页面时才使用它(如果您只想要没有登录页面的旧行为,则不需要元数据密钥):

    gcloud dataproc clusters create \
        --initialization-actions gs://dataproc-initialization-actions/jupyter/jupyter.sh \
        --metadata JUPYTER_AUTH_TOKEN=foobarbaz
    

    那么您的登录密码将是foobarbaz

    【讨论】:

    • 谢谢!!我确实花了 7 多个小时尝试不同的组合(包括不同的机器和区域),思考为什么它以前可以工作而不再工作。现在就试试这个。
    • 是的,这在 Dataproc 方面也被忽视了,感谢您提出这个问题!如果您保持令牌流并希望从 /var/log/jupyter_notebook.log 中 grep 生成的密码/令牌,我还在末尾添加了一个段落作为另一种选择。一般来说,尽管使用 SSH 隧道并保持防火墙关闭的默认指南仍然是此用例的理想选择,并且不需要 jupyter 强制身份验证。
    • 非常感谢!!!它奏效了,我喜欢另一种方法。我的最终 ML 项目真的需要它。
    • 要回答您关于运行本地笔记本的问题,不幸的是,尽管理论上可行,但目前这样做并非易事。它需要小心地打开到您的家庭连接的端口,而不是将它们打开到整个互联网,包括在 SparkContext 和在 Dataproc 集群上运行的 Spark AppMaster 之间可能发生低级别 akka 通信的端口。主机名解析也存在已知问题,因为外部连接将通过外部 IP 拨入,而在集群上使用内部 IP 和主机名。
    • 仅供参考,修复已提交并同步,一切都应该再次使用默认设置正常工作。
    【解决方案2】:

    当您不设置任何密码时,您可以使用安装它的服务器凭据登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 2021-04-11
      • 2016-03-03
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多