3

我正在尝试在 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,但总是收到相同的错误消息。

有没有人遇到过这个问题?

4

1 回答 1

1

基本问题是launch-hadoop-master脚本执行的图像搜索没有返回任何结果。最可能的原因是不同地区可用的 AMI 不同(但这可能是由于您对S3_BUCKETHADOOP_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 分发的默认设置是S3_BUCKETis hadoop-imagesHADOOP_VERSIONis0.19.0ARCHisx86如果您使用的是 m1.small实例)。如果您搜索US-West-2 区域中的公共 AMI,您会看到 Hadoop 映像并不多,但如果您搜索US-East-1 区域中的公共 AMI,您会看到那里不少。因此,解决此问题的一种方法是在 US-East-1 区域工作(这是最简单的),或者,EC2_URL在您的登录脚本中设置,export EC2_URL=https://ec2.us-east-1.amazonaws.com但现在您需要确保从 AWS 控制台将您的密钥放在该区域.

如果您确实更改HADOOP_VERSION1.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-masterlaunch-hadoop-cluster

于 2013-05-26T14:22:53.020 回答