我一直试图在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)。
如果您需要任何额外的信息,请让我知道。
嗨丹尼斯,感谢您的帮助。我也尝试了不同的端口,并检查了可能仍在后台运行的其他进程,但没有。在发布这个问题之后我测试的是在docker之外,在我自己的机器上安装所有东西,然后一切正常。我仍然不太明白Docker镜像中会发生什么,它会中断ssh(因为我可以使用'will @ hostname'成功ssh我在想root用户是否与它有关,但我不确定,只是猜测) –
啊,这是有道理的;你可能只需要一些Docker容器的端口映射标志:https://stackoverflow.com/questions/32070789/portforwarding-from-within-docker-container和https://bobcares.com/blog/docker-port-expose / –