Spark EC2 SSH连接错误SSH返回代码255

Spark EC2 SSH连接错误SSH返回代码255,ssh,amazon-ec2,apache-spark,Ssh,Amazon Ec2,Apache Spark,每次我试图通过Spark ec2/Spark_ec2.py文件在AWS上启动Spark群集时,我都会收到一个SSH连接错误,该错误最终得到解决,但会浪费大量时间 在您将此标记为重复之前,我知道有很多类似的问题被问到,但有两个关键区别:a)我的连接始终完成(最终),我最终得到一个健康的Spark群集;b)其他问题的“答案”通常围绕以前的Spark版本(例如,1.2、1.3等)。从12个月前的1.3到今天的1.6.1,我一直都会遇到这个问题 提前谢谢 终端输出: Launched master in

每次我试图通过Spark ec2/Spark_ec2.py文件在AWS上启动Spark群集时,我都会收到一个SSH连接错误,该错误最终得到解决,但会浪费大量时间

在您将此标记为重复之前,我知道有很多类似的问题被问到,但有两个关键区别:a)我的连接始终完成(最终),我最终得到一个健康的Spark群集;b)其他问题的“答案”通常围绕以前的Spark版本(例如,1.2、1.3等)。从12个月前的1.3到今天的1.6.1,我一直都会遇到这个问题

提前谢谢

终端输出:

Launched master in us-east-1e, regid = r-a1b2c3d4
Waiting for AWS to propagate instance metadata...
Waiting for cluster to enter 'ssh-ready' state...........

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.

Warning: SSH connection error. (This could be temporary.)
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
SSH return code: 255
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused

.
Cluster is now in 'ssh-ready' state. Waited 833 seconds.
Generating cluster's SSH key on master...

请检查EC2中的安全组是否打开了ssh端口(22)。

检查,您必须启用入站ssh通信

请确认客户端和目标计算机上的密钥对名称匹配

在客户端上,它可能存储在~/.ssh中的pem文件中。 在目标主机上,可以在EC2控制台中看到它(单击实例,下一个描述选项卡)

检查它的不同方法:使用相同的密钥对启动一个新的EC2实例,并使用相应的pem文件记录

还要注意安全组。

spark-ec2脚本:

因此,我认为SSH连接延迟/启动缓慢是由于EC2实例在创建时应用(或尝试应用并超时,具体取决于VPC配置)关键补丁程序/安全更新造成的,详情见:

在第一次引导时,AmazonLinuxAMI将从包中安装 存储库任何被评为关键的用户空间安全更新 或者很重要,它在服务(如SSH)启动之前就这样做了

如果AMI无法访问yum存储库,它将超时并重试 在完成引导过程之前重试多次。可能 原因是限制性防火墙设置或专有网络设置, 阻止访问Amazon Linux AMI包存储库

如果确实是这样,那么从应用了所有相关更新的VM创建您自己的AMI,并使用--AMI选项调用脚本应该可以解决问题(这可以自动控制一切)

可以先禁用安全更新过程来测试这一点,如下所示:

要禁用AWS EC2控制台引导时的安全更新:

在请求实例的“高级实例选项”页面上 向导中,有一个文本字段用于发送AmazonLinuxAMI 用户数据。此数据可以作为文本输入,也可以作为文件上载。在 无论哪种情况,数据都应为:

#cloud-config
repo_upgrade: none
要从命令行禁用启动时的安全更新,请执行以下操作:

使用前面的用户数据创建一个文本文件,并将其传递给aws ec2使用
--用户数据文件://
标志运行实例(此 也可以使用
ec2运行实例-f
)完成

在重新引导Amazon时禁用启动时的安全更新 Linux AMI:

修改
/etc/cloud/cloud.cfg
并将
报告升级:安全性更改为
repo\u升级:无


还有同样的问题,以防有人能提供帮助:不要关闭它是暂时的。我的在600秒后工作,我的在很长时间的等待后也能工作。我试图避免等待。你有没有找到解决这个问题的方法?仍然没有解决这个问题的方法?我也有同样的行为。你如何检查文档:打开位于的Amazon EC2控制台。在导航窗格中,选择实例,然后选择您的实例。在“说明”选项卡中,在“安全组”旁边,选择“查看规则”以显示有效的规则列表。对于Linux实例:验证是否存在允许从计算机到端口22(SSH)的通信的规则。从spark-ec2脚本创建的安全组已经启用了SSH通信,我已经在ec2控制台中交叉检查了这一点,您是否禁用了os防火墙?
#cloud-config
repo_upgrade: none