Получить доступ к локальной папке в Heron

Я написал топологию Heron, которая берет данные из локальной папки и обрабатывает их. Однако никаких других папок, кроме той, что описана в файле .pex, герон не видит. Как я могу читать данные за пределами объявленных папок .pex?


person Alexandr Proskurin    schedule 13.11.2018    source источник


Ответы (2)


После запуска экземпляра heron он должен иметь доступ к файлам внутри того же контейнера. Например, они могут записывать журналы в ./logs/INSTANCE_ID.log, что означает, что у него есть доступ на запись к этим файлам.

Не могли бы вы проверить, доступны ли файлы данных внутри работающего контейнера, и экземпляр использует правильный путь к файлам для доступа к этим файлам?

person Neng    schedule 13.11.2018

В идеале вы не должны полагаться на локальные данные в своей топологии. Было бы лучше разместить любые данные, к которым вашим болтам нужен доступ, во внешней системе, такой как база данных или хранилище ключей: значений. Затем вы заставите свои болты запрашивать (и кэшировать локально в памяти) эти данные. Это также имеет преимущество в лучшем масштабировании, если вам нужно добавить больше копий каждого болта, поскольку вы избегаете возможной конкуренции за ресурсы в локальных файлах.

Если вы действительно хотите, чтобы данные были локально доступны для болтов, ответ зависит от того, какой планировщик вы используете. Это может включать добавление файлов в образ контейнера экземпляра heron, который использует ваш планировщик, и может означать перестроение контейнеров каждый раз, когда вы меняете данные. Опять же, я бы предложил использовать внешнее хранилище данных.

person Tom Cooper    schedule 13.11.2018
comment
Я использую стандартный планировщик Heron, который используется по умолчанию для локального кластера Heron. - person Alexandr Proskurin; 14.11.2018