Apache Whirr на EC2 с пользовательским AMI
Я пытаюсь запустить кластер пользовательских образов AMI. Образ AMI - это просто образ сервера Ubunutu 12.04 из бесплатного выбора уровня Amazon с установленной Java (на самом деле я хочу создать AMI с numpy и scipy). Фактически, я создал этот образ, запустив экземпляр Ubuntu 12.04 с ролью whirr и noop. Затем я установил Java и в онлайн-консоли AWS выбрал "Создать образ" (EBS AMI). Я использую тот же сценарий рецепта whirr, который использовал для запуска оригинального сервера Ubuntu с измененным только id изображения.
Whirr запускает изображение, оно отображается в консоли. Затем он пытается запустить InitScript для noop, и ничего не происходит. Через 10 минут выдается исключение, вызванное слишком долгим выполнением скрипта. whirr.log содержит запись
error acquiring SFTPClient() (out of retries - max 7): Invalid packet: indicated length 1349281121 too large
Я видел эту ошибку, упомянутую в одном из учебных пособий, предлагал добавить строку
whirr.bootstrap пользователь = EC2-пользователь
чтобы JCloud знал имя пользователя. Я знаю, что это правильное имя пользователя и все равно использовалось по умолчанию. После добавления строки whirr.log показывает ошибку аутентификации, проблему с открытым ключом. Наконец, когда я использую 'ubuntu' в качестве пользователя, ошибка умирает, потому что - java.net.SocketTimeoutException: чтение истекло
Вот файл, который я использую для запуска кластера
whirr.cluster-name=pineapple
whirr.instance-templates=1 noop
whirr.provider=aws-ec2
whirr.identity=${env:AWS_ACCESS_KEY_ID}
whirr.credential=${env:AWS_SECRET_ACCESS_KEY}
whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
whirr.public-key-file=${sys:user.home}/.ssh/id_rsa.pub
whirr.env.repo=cdh4
whirr.hardware-id=t1.micro
whirr.image-id=us-east-1/ami-224cda4b
whirr.image-location=us-east-1b
1 ответ
Журнал исключений поможет нам решить вашу проблему.
Кроме того, установка следующего может решить вашу проблему.
whirr.cluster-user=<Clu>