我正在尝试在Amazon EC2上启动实例。我已经广泛研究过这个问题,但是我没有找到任何有用的信息。
当我运行命令hadoop-ec2 launch-cluster mycluster 2
时,收到以下错误消息:
Starting master with AMI.
Required parameter 'AMI' missing (-h for usage)
我已输入我的AWS密钥,AWS密钥,AWS密钥对等。我正在使用hadoop-1.0.4。我正在使用默认的S3存储桶(hadoop-images
),但我尝试了很多其他AMI,并且我总是收到相同的错误消息。
以前有人遇到过这个问题吗?
答案 0 :(得分:1)
基本问题是launch-hadoop-master
脚本执行的图像搜索不会返回任何结果。最可能的原因是由于不同地区可用的AMI不同(但可能是由于您对S3_BUCKET
中的HADOOP_VERSION
和hadoop-ec2-env.sh
所做的任何更改。
来自launch-hadoop-master
脚本:
# Finding Hadoop image
AMI_IMAGE=`ec2-describe-images -a | grep $S3_BUCKET
| grep $HADOOP_VERSION
| grep $ARCH
| grep available
| awk '{print $2}'`
# Start a master
echo "Starting master with AMI $AMI_IMAGE"
因此,似乎AMI_IMAGE
未设置为有效图像,因此搜索与各种grep
过滤器匹配的AMI失败(Hadoop 1.0.4发布的默认值为如果您使用m1.small实例,则S3_BUCKET
为hadoop-images
,HADOOP_VERSION
为0.19.0
,ARCH
为x86
。如果您搜索public AMIs in the US-West-2 region,您会发现Hadoop图片不多,但如果您搜索public AMIs in the US-East-1 region,则会看到相当多的图片。因此,解决此问题的一种方法是在US-East-1区域工作(这是最简单的),或者通过EC2_URL
在您的登录脚本中设置export EC2_URL=https://ec2.us-east-1.amazonaws.com
,但现在您需要确保将您的密钥从AWS控制台放入此区域。
如果您确实将HADOOP_VERSION
更改为1.0.4
,我会注意到
ec2-describe-images -a | grep hadoop-images
| grep "1.0.4"'
| grep x86
| grep available
不会返回US-East-1区域中的任何图像。请注意,运行HADOOP_VERSION
命令的Hadoop发行版的版本(hadoop-ec2
)不需要与运行映像的Hadoop版本相同。
最后,作为一个直接修复,您可以找到要使用的AMI,并强制将AMI_IMAGE
设置为launch-hadoop-master
和launch-hadoop-cluster
脚本中的图像名称。