Хранение анализируемых данных журнала в Hadoop и экспортируя его в реляционную БД

StackOverflow https://stackoverflow.com/questions/3080592

  •  28-09-2019
  •  | 
  •  

Вопрос

У меня есть требование анализа как журналов Apache Access, так и Tomcat Logs один за другим, используя карту, уменьшающееся. Несколько полей извлекаются из журнала TOMCAT и отдохнуют от журнала Apache. Мне необходимо объединить / карту извлеченных полей, основанных на временном интеллектуальном интеллекте и экспортируйте эти сопоставленные поля в традиционную реляционную БД (Ex. MySQL).

Я могу анализировать и извлечь информацию, используя регулярное выражение или свинью. Задача, которую я сталкиваюсь с тем, как сопоставить извлеченную информацию с обоих журналов в один агрегатный формат или файл и как экспортировать эти данные в MySQL.

Несколько подходов, о которых я думаю

1) Написать вывод карты уменьшения с обоих проанализированных журналов Apache Access и Tomcat входит в отдельные файлы и объединяет те в один файл (снова на основе времени Timestamp). Экспортируйте эти данные в MySQL.

2) Используйте HBASE или Cive для хранения данных в формате таблицы в Hadoop и экспортируйте, что в MySQL

3) Непосредственно напишите выходной сигнал карты, уменьшающуюся до MySQL с помощью JDBC.

Какой подход будет наиболее жизнеспособным, а также, пожалуйста, предложите любые другие альтернативные решения, которые вы знаете.

Это было полезно?

Решение

Почти всегда предпочтительнее иметь меньше, проще мистер рабочие места и цепочка их вместе, чем иметь большие сложные рабочие места. Я думаю, что ваш лучший вариант - пойти с чем-то вроде № 1. Другими словами:

  1. Процесс Apache HTTPD входит в единый формат.
  2. Процесс Tomcat Logs в единый формат.
  3. Присоединяйтесь к выходу 1 и 2, используя любую логику, имея смысл, написание результата в тот же формат.
  4. Экспортируйте полученный набор данных в вашу базу данных.

Возможно, вы можете выполнить соединение и трансформироваться (1 и 2) на одном шаге. Используйте карту для трансформации и сделать снижение бокового соединения.

Это не звучит так, будто вам нужно / хотите накладные расходы случайных доступа, поэтому я не буду смотреть на HBase. Это не является его сильной точкой (хотя вы можете сделать это в смысле произвольного доступа, посмотрев каждую запись в HBASE по временному времени, видя, если она существует, объединение записи или просто вставляя, если оно не существует, но это очень медленно, сравнительно). Улья может быть проверена для хранения «единого» результата двух форматов, но вам все равно придется преобразовывать записи в этот формат.

Ты абсолютно Не хочу, чтобы редуктор написал на MySQL напрямую. Это эффективно создает атаку DDOS на базу данных. Рассмотрим кластер из 10 узлов, каждый из которых работает 5 редукторов, у вас будет 50 одновременных авторов к той же таблице. Как вы выращиваете кластер, вы очень быстро превышаете максимальные соединения и заслонку RDBMS.

Все это сказано, спросите себя, имеет ли смысл поставить эту много данных в базу данных, если вы рассматриваете полные записи журнала. Этот объем данных именно тот тип корпуса сама Hadoop предназначен для хранения и обработки длительного срока. Если вы вычисляете агрегаты этих данных, все средства, бросьте его в MySQL.

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top