Получить расширение VS Code Python для подключения к Jupyter, работающему на удаленном AWS главном узле EMR - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть работающий сервер Jupyter, работающий на главном узле EMR, где я могу запустить python и код pyspark без проблем. При попытке подключить расширение VS Code Python к тому же серверу Jupyter я получаю следующую ошибку:

Failed to connect to remote Jupyter notebook. 
Check that the Jupyter Server URI setting has a valid running server specified. 
http://***.***.***.***:8888/lab 
Error: Invalid response: 405 Method Not Allowed

Я создал собственный самозаверяющий сертификат в кластере EMR, выполнив следующие действия эти инструкции от IBM . Затем добавили сертификат в Chrome, следуя этим инструкциям по переполнению стека другому пользователю, связанному с GitHub .

Из терминала bash главного узла EMR:

# create key and cert
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
# combine key and cert
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12

Загрузил certificate.p12 на мой локальный компьютер, а затем добавил в Chrome: chrome://settings/privacy> Управление сертификатами> Импорт> Выбрать и импортировать certificate.p12> Перезапуск кода VS.

Я все еще получаю ту же ошибку.

  • Должен ли я создать либо key.pem и certificate.pem на моем локальном компьютере, а затем объединить в сертификат?
  • Есть ли Мне нужно использовать оригинальный ключ .pem, выданный при создании кластера EMR?

1 Ответ

0 голосов
/ 19 апреля 2020

Более новые версии Jupyter запускают что-то вроде браузера на базе терминала lynx.

Независимо от того, какую оболочку терминала я выберу, выходные данные будут крайне хаотичными c после запуска Jupyter, поскольку «документ», который просматривает «браузер» терминала, смешивается с выводом сервера Jupyter. ,

Несмотря на весь этот шум, я могу использовать некоторую комбинацию клавиш со стрелками и ввести , чтобы каким-то образом «перейти» к точке, в которой где-то в терминале отображается сообщение, смешанное с Jupyter. вывод (обычно подсвечивается, но зависит от того, какая программа терминала):

cookie: username-***-***-***-***-****=2|1:0|10:***********|27:username-***-***-***-***-****|44:***********************************k1ZmE=|****************************1bef31e Allow? (Y/N/Always/neVer)

Я набираю A и нажимаю , введите .

Иногда и иногда нет, я на короткое время увижу в Терминале следующее:

Data transfer complete  

Тогда я могу нажать q и выйти из любого браузера, запущенного Jupyter, и просто посмотреть нормальный вывод на сервер Jupyter. Скопируйте полный URL-адрес на сервер Jupyter и вставьте его в VS Code Python extension python.dataScience.jupyterServerURI.

После этого все работает как положено.
Сертификаты или ключи не нужны.

...