Я написал топологию Heron, которая берет данные из локальной папки и обрабатывает их. Однако никаких других папок, кроме той, что описана в файле .pex, герон не видит. Как я могу читать данные за пределами объявленных папок .pex?
Получить доступ к локальной папке в Heron
Ответы (2)
После запуска экземпляра heron он должен иметь доступ к файлам внутри того же контейнера. Например, они могут записывать журналы в ./logs/INSTANCE_ID.log, что означает, что у него есть доступ на запись к этим файлам.
Не могли бы вы проверить, доступны ли файлы данных внутри работающего контейнера, и экземпляр использует правильный путь к файлам для доступа к этим файлам?
В идеале вы не должны полагаться на локальные данные в своей топологии. Было бы лучше разместить любые данные, к которым вашим болтам нужен доступ, во внешней системе, такой как база данных или хранилище ключей: значений. Затем вы заставите свои болты запрашивать (и кэшировать локально в памяти) эти данные. Это также имеет преимущество в лучшем масштабировании, если вам нужно добавить больше копий каждого болта, поскольку вы избегаете возможной конкуренции за ресурсы в локальных файлах.
Если вы действительно хотите, чтобы данные были локально доступны для болтов, ответ зависит от того, какой планировщик вы используете. Это может включать добавление файлов в образ контейнера экземпляра heron, который использует ваш планировщик, и может означать перестроение контейнеров каждый раз, когда вы меняете данные. Опять же, я бы предложил использовать внешнее хранилище данных.