2016-02-08 7 views
1

У меня есть приложение для обработки потока, написанное во Flink & Я хочу использовать его внутреннее хранилище значений ключа из бэкэнда состояния для вычисления потоковых агрегатов. Поскольку я имею дело с множеством агрегатов, я бы хотел, чтобы они не поддерживали их в куче внутри приложения Flink, как в настоящее время предлагают поддерживаемые памятью и файловые приложения. Вместо этого я хотел бы сохранить кэш состояния в Apache Ignite, который, в свою очередь, мог бы использовать сквозные функции сквозной записи &, чтобы обеспечить более надежную резервную копию в HBase.Обеспечение локального кэширования с помощью Ignite on YARN

В идеале у меня был бы один локальный кэш Ignite на каждом физическом узле, который обрабатывает состояние для всех длинных операторов Flink на этом узле. Например. каждый узел имеет единственный узел Ignite в контейнере емкостью 8 ГБ, независимо от того, работает ли он 1 или 10 операторов Flink.

Проблема в том, что я хочу, чтобы и Flink, и Ignite работали на YARN. Благодаря последовательному разбиению на разделы я могу гарантировать, что данные в целом отправляются в правильный кеш, а в случае сбоев и т. Д. Его можно пополнить из HBase. Проблема, с которой я столкнулся, заключается в том, что Ignite, похоже, случайно запрашивает контейнеры из YARN, то есть я не гарантирую, что на самом деле существует локальный кеш, даже если я задал количество узлов Ignite точно так же, как количество физических узлы.

Любые предложения о том, как создать один узел Ignite на физический узел?

+0

Просто из любопытства: Вы уже использовали бэкэнд для Ignite? –

+0

Пока нет. Существует некоторая несоответствие между логикой моментальных снимков во Flink и записью в Ignite. Запись-запись делает снимки no-op, потому что все автоматически синхронизируется мгновенно, но это разрушает логику барьера ровно один раз семантикой. С другой стороны, Write-behind в Ignite не дает мне достаточного контроля над процессом промывки, чтобы сделать правильный снимок. –

+0

Почему вы не можете использовать кеш-память с одним секционированием? Это должно упростить вашу реализацию, потому что Ignite позаботится о том, куда и где получить данные. Если какой-либо узел уйдет, вы не потеряете какие-либо данные, если есть резервные копии для кеша, потому что все данные будут автоматически перебалансированы для вас. – dmagda

ответ

0

Существует билет, созданный для увеличения распределения ресурсов с использованием YARN: https://issues.apache.org/jira/browse/IGNITE-3214. Кто-то в сообществе вытащит его и исправит.

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

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