2016-04-04 6 views
12

Каждый раз, когда я пытаюсь запустить Spark-кластер на AWS через файл Spark ec2/spark_ec2.py, я получаю сообщение об ошибке SSH, которое в конечном итоге разрешается, но тратит много времени ,Ошибка соединения с ошибкой ES2 SSH Код возврата SSH 255

Перед тем, как пометить это как дубликат я знаю, там попросили немало подобных вопросов, но есть два ключевых отличия: а) мое соединение всегда завершается (в конце концов), и я в конечном итоге со здоровой Спарк кластера и б) «ответы» по другим вопросам, как правило, сосредоточены вокруг предыдущих версий Spark (например, 1.2, 1.3 и т. д.). Я всегда испытывал эту проблему, возвращаясь 12 месяцев назад с 1.3 до сегодняшнего дня с 1.6.1.

Заранее благодарен!

Terminal Выход:

Launched master in us-east-1e, regid = r-a1b2c3d4 
Waiting for AWS to propagate instance metadata... 
Waiting for cluster to enter 'ssh-ready' state........... 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 
Cluster is now in 'ssh-ready' state. Waited 833 seconds. 
Generating cluster's SSH key on master... 
+0

По-прежнему возникают те же проблемы, если кто-либо может помочь: –

+0

Не закрывайте временные. моя работа после 600 секунд –

+0

Да, мои работы также после очень долгого ожидания. Я пытаюсь избежать ожидания. –

ответ

1

Пожалуйста, проверьте, если ваша группа безопасности в EC2 имеет SSH порт (22) открытым.

+0

Это @ r-kochhar –

+0

как вы это проверяете? –

+0

@romainjouin per aws документация http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout: Откройте консоль Amazon EC2 на странице https://console.aws.amazon.com/ ec2 /. В навигационной панели выберите Экземпляры, а затем выберите свой экземпляр. На вкладке «Описание» рядом с группами безопасности выберите правила просмотра, чтобы отобразить список действующих правил. Для экземпляров Linux. Убедитесь, что существует правило, разрешающее трафик с вашего компьютера на порт 22 (SSH). –

1

Проверить this, вы должны включить входящий SSH трафик

+1

Группа безопасности, созданная с помощью скрипта spark-ec2, уже включает SSH-трафик, я проверил, что в консоли EC2 также –

+0

И отключите ли вы os-брандмауэр? – jedijs

1

Пожалуйста, подтвердите, что имя ключа пары на стороне клиента и на целевой машине спичек.

На клиенте он, вероятно, хранится в файле ~/.ssh в файле pem. На хосте назначения его можно увидеть в консоли EC2 (щелкните экземпляр, вкладку «Описание»).

Различные способы проверки: запустите новый экземпляр EC2 с той же ключевой парой и войдите в соответствующий файл pem.

Разум и группы безопасности.

1

искровых-EC2 скрипты build AMIs based on the Amazon Linux base AMI:

# Creates an AMI for the Spark EC2 scripts starting with a stock Amazon 
# Linux AMI. 
# This has only been tested with Amazon Linux AMI 2014.03.2 

Поэтому я считаю, что задержка в связи SSH/медленный запуск происходит из-за экземпляр EC2 применения (или попытку и сроков вне, в зависимости от конфигурации VPC) критические патчи/обновление безопасности по созданию, как подробно описано в Amazon Linux AMI FAQ:

при первой загрузке, Амазонка Linux AMI устанавливает из пакета репозиториев любых обновлений безопасности в пространстве пользователя, которые рейтинг criti cal или важно, и он делает это до того, как начнутся службы, такие как SSH.

Если AMI не может получить доступ к репозиториям yum, он будет отключен и повторите попытку несколько раз, прежде чем завершить процедуру загрузки. Возможны . Причинами этого являются ограничительные настройки брандмауэра или настройки VPC, , которые препятствуют доступу к репозиториям пакета Amazon Linux AMI.

Если это действительно так, то создание собственного AMI с виртуальной машины, в которой применяются все соответствующие обновления, и вызов сценария с параметром -ami, должно решить проблему (это может быть автоматизировано для сохранения сверху всего).

Один потенциально может проверить это первое, отключив процесс обновления безопасности, в соответствии с the FAQ:

Чтобы отключить обновление безопасности при загрузке с AWS EC2 консоли:

На «Дополнительные параметры Instance »в окне« Запросы » « Мастер », есть текстовое поле для отправки пользовательских данных Amazon Linux AMI . Эти данные могут быть введены в виде текста или загружены в виде файла. В любом случае, данные должна быть:

#cloud-config 
repo_upgrade: none 

Чтобы отключить обновление безопасности при загрузке из командной строки:

Создать текстовый файл с предыдущими пользовательскими данными, и передать его в AWS ec2 run-экземпляры с флагом --user-data file://<filename> (этот также может быть выполнен с помощью ec2-run-instances -f).

Чтобы отключить обновление безопасности при загрузке, когда rebundling Амазонки Linux AMI:

Изменить /etc/cloud/cloud.cfg и изменить repo_upgrade: security к repo_upgrade: none.

Смежные вопросы