Flume автоматическая масштабируемость и отработка отказа - PullRequest
5 голосов
/ 09 декабря 2011

Моя компания рассматривает возможность использования flume для обработки больших объемов журналов. Мы считаем, что обработка журналов должна быть распределена как по объему (масштабируемость), так и по причинам отказа (надежность), и Flume кажется очевидным выбором.

Однако мы думаем, что упустили что-то очевидное, потому что не видим, как Flume обеспечивает автоматическую масштабируемость и отработку отказа.

Я хочу определить поток, который говорит для каждой строки журнала, сделать что-то A, затем передать это и выполнить B, затем передать это и выполнить C, и так далее, что, похоже, хорошо соответствует Flume. Тем не менее, я хочу иметь возможность определить этот поток в чисто логических терминах, а затем в основном сказать: «Привет, Flume, вот серверы, вот определение потока, иди на работу!». Серверы умрут (и ops перезапустит их), мы добавим серверы в кластер и удалим другие, а flume просто направит работу на любые узлы, имеющие доступную емкость.

Это описание того, как Hadoop map-lower реализует масштабируемость и отработку отказа, и я предположил, что Flume будет таким же. Однако документация предполагает, что мне нужно вручную настраивать, на каких физических серверах работает каждый логический узел, и настраивать конкретные сценарии отработки отказа для каждого узла.

Я прав, и Flume не служит нашей цели, или я что-то упустил?

Спасибо за вашу помощь.

1 Ответ

6 голосов
/ 17 декабря 2011

В зависимости от того, используете ли вы несколько мастеров, вы можете кодировать свою конфигурацию в соответствии с шаблоном отработки отказа.

Это довольно подробно описано в руководстве: http://archive.cloudera.com/cdh/3/flume/UserGuide/index.html#_automatic_failover_chains

Чтобы ответить на ваш вопрос, у Flume еще нет возможности автоматически определить схему восстановления после отказа.

...