在理論上,你可以大都遵循相同的指令如發現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