Я только что создал кластер, используя spark-ec2
. Я выполнил шаги здесь http://spark.apache.org/docs/latest/ec2-scripts.html .
Теперь я хочу настроить все ведомые устройства (150), т. Е. установить Java 8 одновременно для главного и всех подчиненных устройств, есть ли быстрый и простой способ иметь один терминал для всех экземпляров (главного и подчиненных)?
Использование pssh
может быть хорошее решение. Вот пример.
pssh -i -h /root/spark-ec2/slaves dir
Команда dir
будет выполняться на всех ведомых устройствах. pssh
предустановлен на всем кластере.
В ответ на ваш исходный вопрос вы можете установить mpssh- Mass Parallel SSH и использовать его для выполнения команд на всех ваших экземплярах. При первом запуске вам может потребоваться 150 раз ввести «да», если вы не хотите игнорировать проверку ключа хоста.
Вы можете сделать это с помощью команды запуска EC2, если у вас установлен этот агент, хотя он может лучше подходить для чего-то вроде конфигурации Cloud-Init , которую вы добавили пользовательские данные для каждого экземпляра.
В качестве альтернативы рассмотрите возможность использования AWS OpsWorks для настройки узлов по желанию во время загрузки или создания золотого образа с помощью Packer , чтобы конфигурация размещалась во время сборки, а не во время загрузки.
Настройка 150. узлов через cluster-ssh - это рецепт несогласованности на всех ваших узлах, и это будет проблемой, если один из узлов потребуется заменить / повторно подготовить.
Ansible, Puppet, Salt, CFEngine - другие инструменты, которые могут это делать, но не «интерактивно».