Я собираюсь заменить набор сценариев Python ETL, которые выполняют ежечасные / ежечасные сводки данных и сбор статистики для огромного количества данных.
Чего я хотел бы добиться, так это
- Надежность - неудачное задание / шаг должен автоматически перезапускаться.В некоторых случаях я хотел бы вместо этого выполнить шаг восстановления.
- Платформа должна быть в состоянии восстанавливаться после сбоев.Я предполагаю, что здесь потребуется некоторая настойчивость.
- Мониторинг - мне нужно иметь возможность отслеживать ход выполнения заданий / шагов и предпочтительно просматривать историю и статистику в отношении производительности.
- Отслеживаемость- Я должен быть в состоянии понять состояние выполнения
- Ручное вмешательство - приятно иметь ... возможность запускать / останавливать / приостанавливать работу из API / интерфейса пользователя / командной строки.
- Простота - я предпочитаю не сердиться на взгляды моих коллег, когда я представляю замену ... Требуется простой и понятный API.
Текущие сценарии выполняют следующее:
- Соберите текстовые журналы со многих машин и вставьте их в Hadoop DFS.Мы можем использовать Flume для этого шага в будущем (см. http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/).
- Выполнять Hive сводные запросы к данным и вставлять (перезаписывать) в новые таблицы / разделы Hive.
- Извлечение новых сводных данных в файлы и загрузка (слияние) в таблицы MySql. Это данные, которые понадобятся позже для онлайновых отчетов.
- Выполнение дополнительных объединений для вновь добавленных данных MySql (из таблиц MySql).) и обновите данные.
Моя идея состоит в том, чтобы заменить скрипты на подпружиненные. Я также изучил Scriptella , но я считаю, что это слишком "просто" дляэтот случай.
, так как я видел некоторые плохие вибрации в Spring-Batch (в основном, старые сообщения), я надеюсь получить здесь некоторую информацию. Я также мало что видел об интеграции Spring-Batch и Hive, котораяхлопотно.