ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Amazon AWS PHP SDK-群集无法启动-给定的SSH密钥名称无效

2019-11-27 18:32:22  阅读:352  来源: 互联网

标签:emr amazon-web-services php


我正在尝试创建一个PHP页面来启动集群并将作业添加到作业流.

$response = $emr->run_job_flow($nameOfRun, array(
        'Ec2KeyName' => 'hadoop',
        'HadoopVersion' => '0.20',
        'KeepJobFlowAliveWhenNoSteps' => $clusterAlive,
        'InstanceGroups' => array(
                array( // Group #1
                        'InstanceCount' => $numOfMaster,
                        'InstanceRole' => 'MASTER',
                        'InstanceType' => $masterInstanceType,
                        'Market' => 'ON_DEMAND',
                        'Name' => 'Master',
                ),
                array( // Group #2
                        'InstanceCount' => $numOfSlaves,
                        'InstanceRole' => 'CORE',
                        'InstanceType' => $slaveInstanceType,
                        'Market' => 'ON_DEMAND',
                        'Name' => 'Slaves',
                )
        ),
        'Placement' => array(
                'AvailabilityZone' => 'us-east-1d'
        )
));

启动集群,我可以看到作业流ID.但是它在启动后立即开始关闭.当我执行一个弹性映射–list时,对于该群集,状态为Failed.

任何已知问题或我做错任何地方吗? AvailabilityZone可能是造成此问题的原因吗?

我从AWS Console进行了检查,它给出了此错误-给定的SSH密钥名称无效
我查了一下,快捷键和config.inc.php中提供密钥我是正确的,工作.

问候,
Kartikeya Sinha

解决方法:

看起来有四个不同的陷阱可能会导致此错误,如此AWS thread:所述

>从控制台中指定确切的密钥对名称.
>指定与端点区域不同的区域中存在的密钥对.
>将密钥对用于其他AWS服务,而不是用于EC2.
>使用重命名的密钥对pem文件时,它应与控制台中的密钥对匹配(实际上是1的特殊情况).

如果一切正常,请尝试删除密钥对并制作一个新的密钥对.

根据对PHP SDK文档的阅读,我认为问题在于您完全指定了EC2KeyName(您的注释表明您不想将特定的pem文件绑定到EC2实例;您只想使用秘密访问)键和访问键).

Ec2KeyName – string – Optional – Specifies the name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called “hadoop.” [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern:

[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*]

此参数是指可以与EC2实例关联的pem密钥对文件.您的评论建议您专门谈论AccessKeys和SecretAccessKeys,它们是不同的概念.通过pem文件,您可以通过ssh访问EC2实例.后者授权您使用AWS API.

您将能够杀死该可选参数并完成工作,尽管没有pem文件就无法进入其附属的EC2实例.

标签:emr,amazon-web-services,php
来源: https://codeday.me/bug/20191127/2076329.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有