我正在尝试在 Amazon EC2 上启动一个实例。我对这个问题进行了广泛的研究,但没有找到任何有用的信息。
当我运行命令 hadoop-ec2 launch-cluster mycluster 2
时,我收到以下错误消息:
Starting master with AMI.
Required parameter 'AMI' missing (-h for usage)
我已经输入了我的 AWS key 、AWS key 、AWS key 对等。我使用的是 hadoop-1.0.4。我使用的是默认的 S3 存储桶 (hadoop-images
),但我尝试了许多其他 AMI,但总是收到相同的错误消息。
有没有人遇到过这个问题?
最佳答案
基本问题是 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 发行版是 S3_BUCKET
是 hadoop-images
,HADOOP_VERSION
是 0.19.0
和 ARCH
是 x86
如果您使用的是 m1.small 实例)。如果您搜索 public AMIs in the US-West-2 region ,您会发现 Hadoop 图像并不多,但是如果您搜索 public AMIs in the US-East-1 region ,你会看到有很多。因此,解决此问题的一种方法是在 US-East-1 区域工作(这是最简单的),或者,通过 export EC2_URL=https:/在您的登录脚本中设置
但现在您需要确保从 AWS 控制台将 key 放入该区域。EC2_URL
/ec2.us-east-1.amazonaws.com
如果您确实将 HADOOP_VERSION
更改为 1.0.4
,我会注意到
ec2-describe-images -a | grep hadoop-images
| grep "1.0.4"'
| grep x86
| grep available
不返回 US-East-1 区域中的任何图像。请注意,您从中运行 hadoop-ec2
命令的 Hadoop 发行版版本 (HADOOP_VERSION
) 不需要与图像所在的 Hadoop 版本相同将运行。
最后,作为直接修复,您可以找到您要使用的 AMI,并强制将 AMI_IMAGE
设置为 launch-hadoop-master
中的图像名称和 launch-hadoop-cluster
脚本。
关于hadoop - 如何为 'hadoop-ec2' 正确配置 Amazon EC2 AMI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15894352/