3

我正试图在Amazon EC2上启动一个实例。我已经广泛研究了这个问题,但我还没有找到任何有用的信息。如何为'hadoop-ec2'正确配置Amazon EC2 AMI?

当我运行命令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,并且始终收到相同的错误消息。

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

回答

1

基本问题是,搜索脚本执行的图像launch-hadoop-master没有返回任何结果。造成这种情况的最可能原因是由于在不同地区有不同的AMI(但这可能是由于您对S3_BUCKETHADOOP_VERSIONhadoop-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_BUCKEThadoop-images,HADOOP_VERSION0.19.0ARCHx86如果您使用m1.small实例)。如果您搜索public AMIs in the US-West-2 region,则会看到Hadoop映像并不多,但如果搜索public AMIs in the US-East-1 region,则会看到有不少。因此,解决这个问题的方法之一是在美国东部地区工作(这是最简单的),或者通过export EC2_URL=https://ec2.us-east-1.amazonaws.com在您的登录脚本中设置EC2_URL,但现在您需要确保您将密钥从AWS控制台。

如果你确实改变HADOOP_VERSION1.0.4,我会注意到,

ec2-describe-images -a | grep hadoop-images 
         | grep "1.0.4"' 
         | grep x86 
         | grep available 

不会在美国东1区返回任何图像。请注意,您运行hadoop-ec2命令的Hadoop发行版的版本(HADOOP_VERSION)不需要与图像将运行的Hadoop版本相同。

最后,为钝的修复,你会发现,你要使用的AMI,和力在launch-hadoop-masterlaunch-hadoop-cluster脚本设置AMI_IMAGE到图像名称。