2013-10-04 2 views
6

Я разрабатываю топологии для бури (storm-project.net). У меня есть 2 удаленных кластера: постановка и производство.Развертывание топологий для разных удаленных кластеров?

У меня есть два файла storm.yaml на клиенте (мой ноутбук, на котором я пишу код), которые указывают на разные удаленные кластеры, production.storm.yaml и staging.storm.yaml.

К сожалению, единственный способ переключиться между ними - это изменить символическую ссылку на ~/.storm/storm.yaml перед удалением топологий удаленно с помощью команды «буря». Это подвержено ошибкам и создает зависимость в дереве исходных текстов проекта к чему-то в довольно произвольном месте в дереве файлов клиента.

Должен быть лучший способ. «Список штормов --config staging.storm.yaml» предоставит мне информацию о промежуточном кластере, но я не могу найти сопоставимый флаг, чтобы установить файл conf с помощью «буриной банки». Или, может быть, есть переменная окружения типа STORM_HOME, которую я могу установить?

ответ

2

У меня также была та же проблема. Я сделал, чтобы написать Makefile для развертывания моих топологий Storm. Если разные цели будут создавать разные символические ссылки. Что-то вроде:

export STORM_PATH=/opt/storm 
export PROJECT_PATH=/project/path 

compile: 
    cd $(PROJECT_PATH) 
    mvn compile 

package: 
    cd $(PROJECT_PATH) 
    mvn package 

deploy-staging: package 
    ln -s $(STORM_PATH)/conf/staging.storm.yaml $(STORM_PATH)/conf/storm.yaml 
    storm jar $(PROJECT_PATH)/target/project.jar my.project.Topology myTopology 

deploy-production: package 
    ln -s $(STORM_PATH)/conf/production.storm.yaml $(STORM_PATH)/conf/storm.yaml 
    storm jar $(PROJECT_PATH)/target/project.jar my.project.Topology myTopology 

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

make deploy-production 

и то же самое с постановкой. Вы увидите, что топология также упакована (если вы используете Maven). Вы также можете иметь разные файлы yaml как часть вашего репозитория и иметь символические ссылки, которые просто указываются в вашем репозитории. Кроме того, вы можете иметь файлы yaml на своих машинах развертывания, и они могут быть разными для разных развертываний. Всегда с тем же именем.

8

Вам не нужно поддерживать отдельные файлы .yaml. Вы можете переопределить конфигурацию nimbus.host с помощью опции командной строки -c:

storm jar -c nimbus.host=nimbus.example.com my-storm-jar.jar com.example.MyTopology 

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

  • Нет связанных вопросов^_^