Как передать аргументы jvm штормовому приложению

Я работаю над штормовым приложением, и мне нужно передавать информацию об окружении и облаке с помощью vmargs. Аргументы программы вызывают проблемы с безопасностью, поскольку я устанавливаю эти значения с помощью System.setproperty и файла свойств, которые я не могу использовать. Vmargs не работают со штормом. Любая идея, что еще я могу сделать?


person user2679632    schedule 05.07.2021    source источник


Ответы (2)


Я предполагаю, что вы запускаете Storm в кластерном режиме на удаленной машине. В этом случае storm предлагает вам использовать команду storm jar. Это правда, что по умолчанию он принимает всего несколько аргументов, поскольку внутри он использует скрипт Python, который вызывает java.

Но кажется возможным запустить storm с помощью команды java и передать ей команды командной строки - см. эту ссылку .

person moosehead42    schedule 27.07.2021

Другой способ передать некоторые переменные в топологию — это подстановка переменных среды в файле потока и запуск

name: topo${ENV-YOURVAR}

при запуске в bash выглядит так:

export YOURVAR=test
storm jar yourtopo.jar org.apache.storm.flux.Flux yourtopo.flux -e

Флаг -e указывает storm заменить переменные среды в файле потока.

person Vitos    schedule 27.07.2021