Основная проблема заключается в том, что поиск изображений, выполняемых сценарием launch-hadoop-master
, не возвращает никаких результатов. Наиболее вероятная причина этого в связи с различными ОИМ, которые доступны в разных регионах (но это может быть связано с любыми изменениями, внесенными вами в 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
фильтров не удается (по умолчанию для 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, вы увидите, что их довольно много. Таким образом, одним из способов решения этой проблемы является работа в регионе США-Восток-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
не возвращает изображения в американо-Восток-1 регионе. Обратите внимание, что версия (HADOOP_VERSION
) дистрибутива Hadoop, в которой вы используете команду hadoop-ec2
, не должна быть такой же, как версия Hadoop, что изображения будут работать.
Наконец, как тупой исправить, можно найти AMI, который вы хотите использовать, и сила установить AMI_IMAGE
на имя изображения в launch-hadoop-master
и launch-hadoop-cluster
сценариев.