Google Dataproc - невозможно подключиться через SSH - PullRequest
0 голосов
/ 01 июля 2018

Я установил ноутбук Cloud Datalab в кластер Cloud Dataproc, следуя инструкциям, указанным в официальной документации

После создания кластера я создал туннель SSH к главному узлу в Cloud Shell и подключился к интерфейсу кластера с помощью Cloud Shell. Инструкция . Я мог получить доступ к ноутбукам Jupyter после этого. Я использовал опцию -v verbose для просмотра журналов SSH-соединений:

gcloud compute ssh cluster-datalab-m --project=abcxyz-123 --zone us-west1-a \
    -- -v -4 -N -L 8080:cluster-datalab-m:8080

Но через некоторое время у меня появилось всплывающее окно с сообщением: «Не удалось установить соединение с сервером ноутбука. Ноутбук продолжит пытаться восстановить соединение. Проверьте сетевое соединение или конфигурацию сервера ноутбука». и мой кластер перестал отвечать на любые команды.

Когда я посмотрел на вывод SSH в Cloud Shell, я увидел, что в этот момент запрашивается несколько каналов.

Предварительный просмотр журналов SSH непосредственно во время точки останова:

debug1: channel 1: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 2: new [direct-tcpip]
debug1: channel 1: free: direct-tcpip: listening port 8080 for cluster-datalab-m port 8080, connect from 127.0.0.1 port 52832 to 127.0.0.1 port 8080, nchannels 3
debug1: channel 2: free: direct-tcpip: listening port 8080 for cluster-datalab-m port 8080, connect from 127.0.0.1 port 52833 to 127.0.0.1 port 8080, nchannels 2
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 1: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 2: new [direct-tcpip]
debug1: channel 2: free: direct-tcpip: listening port 8080 for cluster-datalab-m port 8080, connect from 127.0.0.1 port 52837 to 127.0.0.1 port 8080, nchannels 3
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 2: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 3: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 4: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 5: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.
debug1: channel 6: new [direct-tcpip]
debug1: Connection to port 8080 forwarding to cluster-datalab-m port 8080 requested.

Я закрыл это соединение SSH вручную, а затем попытался подключиться к главному узлу по SSH, нажав кнопку SSH на консоли Compute Engine, но даже это заняло много времени и не завершилось успешно.

Я смотрел на этот вопрос stackoverflow , но я не смог найти ни одной папки /etc/sshguard в главном узле, поэтому я не думаю, что это проблема для моего случая. Главный узел работал под управлением Debian 8.10.

Есть ли способ обеспечить непрерывную работу SSH-соединения (и ноутбука Jupyter)?

1 Ответ

0 голосов
/ 03 августа 2018

Мы обновили документацию на кластерные веб-интерфейсы . Использование облачной оболочки работает для Datalab, но не для Jupyter. Cloud Shell Preview поддерживает только HTTP, но Jupyter использует веб-сокеты.

Вместо этого вы должны следовать инструкциям для настройки прокси-сервера SOCKS и указания Chrome на него. Есть удобный bash скрипт с именем launch-jupyter-interface.sh, который сделает это за вас. Вам просто нужно изменить его, чтобы он указывал на вашу установку Chrome.

В руководстве Jupyter также упоминается использование этого сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...