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