基本的な問題は、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_BUCKET
is hadoop-images
、HADOOP_VERSION
is 0.19.0
、およびARCH
isです)。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-master
launch-hadoop-cluster