获取VS代码Python扩展以连接到远程AWS EMR主节点上运行的Jupyter。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取VS代码Python扩展以连接到远程AWS EMR主节点上运行的Jupyter。相关的知识,希望对你有一定的参考价值。

我有一个运行在EMR主节点上的Jupyter服务器,在那里我可以顺利运行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上.

从EMR主节点的bash终端。

# 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.pemcertificate.pem 在我的本地,然后合并成一个证书?
  • 我是否需要使用原来的 .pem 创建EMR集群时发出的密钥?
答案

新版本的Jupyter启动了类似于基于Terminal的程序。lynx 浏览器。

无论我选择哪种终端外壳,在我启动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服务器输出即可。 复制Jupyter服务器的完整网址,粘贴到VS代码Python扩展中去 python.dataScience.jupyterServerURI.

之后,一切都能如期进行。不需要证书或密钥。

以上是关于获取VS代码Python扩展以连接到远程AWS EMR主节点上运行的Jupyter。的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 SSH 隧道以连接到位于 AWS EC2 服务器上的 ElasticSearch 和 MongoDB?

VS code remote x11 在连接到远程服务器时无法显示

AWS Glue 可以通过 SFTP 连接到远程服务器吗?

有没有办法配置 Elastic Beanstalk 以连接到现有的 Oracle 数据库(没有 BYOL)?

如何使用python形成地址字符串以连接到安慰

MySQL Workbench 连接到 AWS,收到错误“无法连接到本地主机”