8

Я разбираю журналы доступа, созданные Apache, Nginx, Darwin (сервер потоковой передачи видео) и агрегируя статистику для каждого доставленного файла по дате/рефереру/useragent.Amazon MapReduce лучшие практики анализа журналов

Тонны журналов, сгенерированные каждый час, и это число может быть значительно увеличено в ближайшем будущем - поэтому обработка таких данных распределенным способом через Amazon Elastic MapReduce звучит разумно.

Прямо сейчас я готов с картографами и восстановителей для обработки мои данные и проходят весь процесс со следующим потоком:

  • загружено картографов, редукторы и данные на Amazon S3
  • настроена соответствующая работа и обработаны успешно
  • загруженные агрегированные результаты от Amazon S3 на моем сервере и вставить их в базу данных MySQL, выполнив CLI скрипт

Я d один из которых вручную в соответствии с тысячами обучающих программ, которые можно найти в Интернете об Amazon ERM.

Что мне делать дальше? Каков наилучший подход для автоматизации этого процесса?

Каковы общие методы для:

  • Использование хрон для управления Amazon EMR JobTracker с помощью API?
  • Как я могу убедиться, что мои журналы не будут обрабатываться дважды?
  • Должен ли я контролировать перемещение/удаление обработанных/результатов файлов по собственному пользовательскому сценарию?
  • Что такое лучший подход для обработки результатов, чтобы вставить их в PostgreSQL/MySQL?
  • Должен ли я создавать разные «входные»/«выходные» каталоги для каждого задания или использовать те же каталоги для всех заданий?
  • Должен ли я создавать новое задание каждый раз через API?
  • Что такое лучший способ загрузки необработанных журналов на Amazon S3? Я просмотрел Apache Flume, но я не уверен, что это то, что мне нужно, пока мне не нужны обработка журналов в режиме реального времени.
  • Как вы можете управлять этой новой частью журналов из Apache, nginx готовы для загрузки в Amazon? (logs rotation?)
  • Может ли кто-нибудь поделиться своей настройкой потока обработки данных?
  • Как вы контролируете загрузку файлов и завершение работы?

Sure В большинстве случаев это зависит от вашей инфраструктуры и архитектуры приложения.

Sure Я могу реализовать все с помощью своего пользовательского решения, возможно, повторно инвестируя много вещей, которые уже используются кем-то еще.

Но там должно быть обычным явлением, с которым я хотел бы ознакомиться.

Я думаю, что эта тема может быть полезна для многих людей, которые пытаются обработать журналы доступа с помощью Amazon Elastic MapReduce, но не смогли найти хорошие материалы о лучших методах обработки этого.

UPD: Просто чтобы прояснить здесь единственный последний вопрос:

Что лучшие практики для обработки бревен на питание от Amazon Elastic MapReduce?

Похожие сообщения:

Getting data in and out of Elastic MapReduce HDFS

+2

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

+0

Да, на самом деле это только один вопрос: где мы можем найти материалы об Amazon MapReduce лучшие практики анализа журналов? Обновлено описание. – webdevbyjoss

ответ

3

Это очень очень широкий вопрос открытый, но вот некоторые мысли, которые вы могли бы рассмотреть:

  • Использование Amazon SQS: это распределенная очередь, и очень полезно для управления рабочими процессами, у вас cna есть процесс, который записывает в очередь, как только журнал доступен, а другой, который читает от него, обрабатывает журнал, описанный в сообщении очереди, и удаляет его при завершении обработки. Это обеспечило бы обработку журналов только один раз.
  • Apache Flume, как вы упомянули, очень полезен для агрегации журналов. Это то, что вы должны учитывать, даже если вам не нужно в режиме реального времени, поскольку это дает вам, по крайней мере, стандартизованный процесс агрегации.
  • Amazon недавно выпустила SimpleWorkFlow. Я только начал изучать его, но это звучит многообещающе управлять каждым шагом вашего конвейера данных.

Надеюсь, что даст вам несколько подсказок.