基本的な問題は、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ため、さまざまなフィルターに一致する AMI の検索grepが失敗しています (Hadoop 1.0.4 ディストリビューションのデフォルトは、 m1.small を使用している場合はS3_BUCKETis hadoop-images、HADOOP_VERSIONis 0.19.0、およびARCHisです)。x86インスタンス)。US-West-2 リージョンでパブリック AMI を検索すると、Hadoop イメージがあまりないことがわかりますが、US-East-1 リージョンでパブリック AMI を検索すると、そこにあることがわかります。かなりの数です。したがって、この問題を回避する 1 つの方法は、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-masterlaunch-hadoop-cluster