在理论上,你可以大都遵循相同的指令如发现https://cloud.google.com/shell/docs/features#web_preview通过云端Shell的相同“网络预览”功能使用本地端口转发访问Dataproc上的Jupyter笔记本。喜欢的东西在你的云壳以下:
gcloud compute ssh my-cluster-m -- -L 8080:my-cluster-m:8123
不过,也有其阻止这样做的两个问题:
您需要修改Jupyter config来添加以下的底部/root/.jupyter/jupyter_notebook_config.py
:
c.NotebookApp.allow_origin = '*'
云壳牌公司的网页预览需要增加对WebSockets的支持。
如果你不这样做(1),那么你就当试图创建一个笔记本,由于Jupyter拒绝云壳代理领域得到弹出错误。不幸的是(2)需要Cloud Shell本身的更深入的支持;它会表现为像A connection to the notebook server could not be established.
另一种可能的选择错误,而无需等待(2)是运行自己的nginx代理作为Dataproc群集上jupyter初始化动作的一部分,如果你能得到它的代理WebSockets的适当。看到这个线程也有类似的情况:https://github.com/jupyter/notebook/issues/1311
通常,这种类型的代理层中断开的websocket支持是一个常见的问题,因为它还比较新;随着时间的推移,越来越多的东西将开始支持开箱即用的websockets。
或者:
Dataproc还支持使用一个Datalab初始化动作;这被设置为使得代理的websocket已经被处理。因此,如果你不是太依赖只是Jupyter具体而言,然后在云壳以下工作:
gcloud dataproc clusters create my-datalab-cluster \
--initialization-actions gs://dataproc-initialization-actions/datalab/datalab.sh
gcloud compute ssh my-datalab-cluster-m -- -L 8080:my-datalab-cluster-m:8080
,然后选择在8080端口上惯用的“网页预览”或者你可以选择其他云壳牌支持本地结合样口:
gcloud compute ssh my-datalab-cluster-m -- -L 8082:my-datalab-cluster-m:8080
在这种情况下,你会选择8082
作为网页预览端口。
您列出的替代方案适合我!非常感谢! – dobbysock1002