Amazon web services 集群挂起在';ssh就绪';使用Spark 1.2.0 EC2启动脚本进行状态设置

Amazon web services 集群挂起在';ssh就绪';使用Spark 1.2.0 EC2启动脚本进行状态设置,amazon-web-services,amazon-ec2,apache-spark,apache-spark-1.2,Amazon Web Services,Amazon Ec2,Apache Spark,Apache Spark 1.2,我试图使用预打包的EC2脚本启动一个独立的Spark群集,但它只是无限期地挂起在“ssh就绪”状态: ubuntu@machine:~/spark-1.2.0-bin-hadoop2.4$ ./ec2/spark-ec2 -k <key-pair> -i <identity-file>.pem -r us-west-2 -s 3 launch test Setting up security groups... Searching for existing cluster

我试图使用预打包的EC2脚本启动一个独立的Spark群集,但它只是无限期地挂起在“ssh就绪”状态:

ubuntu@machine:~/spark-1.2.0-bin-hadoop2.4$ ./ec2/spark-ec2 -k <key-pair> -i <identity-file>.pem -r us-west-2 -s 3 launch test
Setting up security groups...
Searching for existing cluster test...
Spark AMI: ami-ae6e0d9e
Launching instances...
Launched 3 slaves in us-west-2c, regid = r-b_______6
Launched master in us-west-2c, regid = r-0______0
Waiting for all instances in cluster to enter 'ssh-ready' state..........
ubuntu@machine:~/spark-1.2.0-bin-hadoop2.4$。/ec2/spark-ec2-k-i.pem-r us-west-2-S3发射测试
正在设置安全组。。。
正在搜索现有群集测试。。。
火花AMI:AMI-ae6e0d9e
正在启动实例。。。
在美国西部2c发射了3个奴隶,regid=r-b\uuuuu6
美国西部2c发射母舰,regid=r-0
正在等待群集中的所有实例进入“ssh就绪”状态。。。。。。。。。。
但我可以毫无怨言地使用SSH访问这些实例:

ubuntu@machine:~$ ssh -i <identity-file>.pem root@master-ip
Last login: Day MMM DD HH:mm:ss 20YY from c-AA-BBB-CCCC-DDD.eee1.ff.provider.net

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/
There are 59 security update(s) out of 257 total update(s) available
Run "sudo yum update" to apply all updates.
Amazon Linux version 2014.09 is available.
root@ip-internal ~]$
ubuntu@machine:~$ssh-i.pemroot@master-知识产权
上次登录日期:年月日HH:mm:ss 20YY从c-AA-BBB-CCCC-DDD.eee1.ff.provider.net
__|  __|_  )
_|(/Amazon-Linux-AMI)
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/
257个可用更新中有59个可用
运行“sudo yum update”应用所有更新。
Amazon Linux 2014.09版可用。
root@ip-内部~]$

我正在试图弄清楚这是AWS还是Spark脚本中的问题。直到最近我才遇到过这个问题。

我遇到了同样的情况。我在
def is\u ssh\u available()
中查看了python脚本,并让它转储返回代码和cmd

except subprocess.CalledProcessError, e:
print "CalledProcessError "
print e.returncode
print e.cmd
我把密钥文件的位置改为
~/.pzkeys/mykey.pem
——作为一个实验,我把它改为完全合格的,即
/home/pete.zybrick/.pzkeys/mykey.pem
,这样就行了

就在那之后,我遇到了另一个错误——我试图使用
--user=ec2 user
(我试图避免使用root),然后我在rsync上得到了一个权限错误,删除了
--user-ec2-user
,因此它将使用root作为默认值,再次尝试使用
--resume
,运行成功。

Spark 1.3.0+ 这个问题很重要


Spark 1.2.0 您的问题是由SSH由于而静默停止引起的

要解决您的问题,请将
-o UserKnownHostsFile=/dev/null
添加到
spark_ec2.py
脚本中


或者,为了清理并避免在稍后使用SSH连接到集群时遇到问题,我建议您:

  • 删除
    ~/.ssh/known_hosts
    中包含EC2主机的所有行,例如:
  • ec2-54-154-27-180.eu-west-1.compute.amazonaws.com,54.154.27.180 ssh rsa(…)

  • 用于停止检查和存储EC2实例的临时IP指纹

  • 我使用了我的身份文件的绝对(而非相对)路径(灵感来自Peter Zybrick),并按照Grzegorz Dubicki的建议做了一切。谢谢。

    我也遇到了同样的问题,我遵循了线程中提到的所有步骤(主要是将-o UserKnownHostsFile=/dev/null添加到spark_ec2.py脚本中),但它仍然挂着说

    Waiting for all instances in cluster to enter 'ssh-ready' state
    
    简短答复: 更改私钥文件的权限并重新运行spark-ec2脚本

    [spar@673d356d]/tmp/spark-1.2.1-bin-hadoop2.4/ec2% chmod 0400 /tmp/mykey.pem
    
    长答覆: 为了排除故障,我修改了spark_ec2.py并记录了使用的ssh命令,并尝试在命令提示符下执行它,这是对密钥的错误权限:

    [spar@673d356d]/tmp/spark-1.2.1-bin-hadoop2.4/ec2% ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /tmp/mykey.pem  -o ConnectTimeout=3 uroot@52.1.208.72 
    Warning: Permanently added '52.1.208.72' (RSA) to the list of known hosts.
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0644 for '/tmp/mykey.pem' are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    bad permissions: ignore key: /tmp/mykey.pem
    Permission denied (publickey).
    

    1.您从何处通过SSH连接到集群?2.您从何处启动集群?3.您确定集群中的所有节点都可以通过SSH访问吗?4.这种情况是否持续发生?我不需要删除所有已知的AWS主机,因为将
    UserKnownHostsFile
    设置为
    /dev/null
    足以纠正问题em,其中ssh进程以静默方式失败,并显示为挂起。@cfeduke谢谢,我将答案编辑为独立的必要和可选步骤(以及更多:).我在Spark的JIRA&a PR中用我的更改打开了一个问题:。如果你受到影响,请投票!我按照所有步骤,等待了2个多小时,然后砰的一声!群集开始了。需要很大的耐心。我认为这是另一个问题,@Frank B。看看是否有帮助。如果Grzegorz Dubicki的答案正确,请将其标记为正确答案。