0

我一直試圖在Dataproc中使用初始化腳本jupyter repository來創建羣集。無法在羣集中使用SSH Dataproc主機

但是當我嘗試ssh到主這樣一來就能訪問Jupyter界面運行此命令:

gcloud compute ssh --zone=zone_name --ssh-flag="-D 10000" --ssh-flag="-N" --ssh-flag="-n" "cluster1-m" & 

我得到的錯誤:

Permission denied (publickey). ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

我可以確認所有ssh密鑰正常創建。我想這另一種選擇則:

gcloud compute ssh --zone=zone_name --ssh-flag="-D 10000" --ssh-flag="-N" --ssh-flag="-n" "[email protected]" & 

這似乎是工作,我可以使用SSH連接實例,但現在我得到的錯誤:

bind: Cannot assign requested address channel_setup_fwd_listener_tcpip: cannot listen to port: 10000 Could not request local forwarding.

要創建我使用的集羣:

gcloud dataproc clusters create $CLUSTER_NAME \ 
--metadata "JUPYTER_PORT=8124,JUPYTER_CONDA_PACKAGES=numpy:pandas:scikit-learn:jinja2:mock:pytest:pytest-cov" \ 
--initialization-actions \ 
    gs://dataproc-initialization-actions/jupyter/jupyter.sh \ 
--bucket $BUCKET_NAME 

我在Docker鏡像中運行這個Debian 8.9(jessie)。

如果您需要任何額外的信息,請讓我知道。

回答

0

如果您驗證了可以正常進入集羣的SSH,那麼如果您剛剛得到bind: Cannot assign requested address錯誤,則可能意味着您已經在本機上使用端口10000已經有另一個本地端口轉發的SSH會話。如果看到bind錯誤,則應該首先嚐試使用不同的本地端口,如-D 12345。你可以使用top或你的任務管理器來檢查你是否有一個掛起的ssh -D命令仍在運行,並佔用端口10000.

+0

嗨丹尼斯,感謝您的幫助。我也嘗試了不同的端口,並檢查了可能仍在後臺運行的其他進程,但沒有。在發佈這個問題之後我測試的是在docker之外,在我自己的機器上安裝所有東西,然後一切正常。我仍然不太明白Docker鏡像中會發生什麼,它會中斷ssh(因爲我可以使用'will @ hostname'成功ssh我在想root用戶是否與它有關,但我不確定,只是猜測) –

+0

啊,這是有道理的;你可能只需要一些Docker容器的端口映射標誌:https://stackoverflow.com/questions/32070789/portforwarding-from-within-docker-container和https://bobcares.com/blog/docker-port-expose / –

相關問題