8

Sto analizzando i log di accesso generati da Apache, Nginx, Darwin (server di streaming video) e aggregando le statistiche per ogni file consegnato per data/referente/useragent.Amazon MapReduce le migliori pratiche per l'analisi dei registri

Tonnellate di registri generati ogni ora e il numero che probabilmente aumenterà drasticamente in un prossimo futuro, quindi elaborare questo tipo di dati in modo distribuito tramite Amazon Elastic MapReduce sembra ragionevole.

In questo momento io sono pronto con mapper e riduttori al trattamento dei dati e testati l'intero processo con il seguente flusso:

  • caricati mapper, riduttori e dei dati di Amazon S3
  • configurato lavoro appropriato e trattati con successo
  • scaricate risultati aggregati da Amazon S3 al mio server e li inserito nel database MySQL eseguendo lo script CLI

ho d uno che manualmente secondo migliaia di tutorial che sono googlable su Internet su Amazon ERM.

Cosa devo fare dopo? Qual è l'approccio migliore per automatizzare questo processo?

Quali sono le pratiche comuni per:

  • Usando cron per controllare Amazon EMR JobTracker tramite API?
  • Come posso essere sicuro che i miei registri non vengano elaborati due volte?
  • Devo controllare il movimento/rimozione dei file elaborati/risultati dal mio script personalizzato?
  • Qual è l'approccio migliore per gestire i risultati per inserirli in PostgreSQL/MySQL?
  • Devo creare diverse directory "input"/"output" per ogni Job o utilizzare le stesse directory per tutti i lavori?
  • Devo creare un nuovo lavoro ogni volta tramite API?
  • Qual è l'approccio migliore per caricare i registri non elaborati su Amazon S3? Ho esaminato Apache Flume ma non sono sicuro che sia qualcosa di cui ho bisogno finché non ho bisogno di elaborare i registri in tempo reale.
  • Come controllate questa nuova porzione di log da Apache, nginx è pronta per essere caricata su Amazon? (registra la rotazione?)
  • Qualcuno può condividere la configurazione del flusso di elaborazione dati?
  • Come si controllano i caricamenti di file e i completamenti di lavori?

Sure nella maggior parte dei casi dipende dall'infrastruttura e dall'architettura dell'applicazione.

Sure Posso implementare tutto ciò con la mia soluzione personalizzata, magari reinvestendo un sacco di cose che sono già utilizzate da altri da qualche parte.

Ma ci dovrebbe essere essere una sorta di pratiche comuni che mi piacerebbe familiarizzare con.

Penso che questo argomento possa essere utile per molte persone che tentano di elaborare i registri di accesso con Amazon Elastic MapReduce, ma non è stato in grado di trovare buoni materiali sulle migliori pratiche per gestirli.

UPD: Giusto per chiarire qui è la sola domanda finale:

Quali sono le migliori pratiche per l'elaborazione log alimentati da Amazon Elastic MapReduce?

Related posts:

Getting data in and out of Elastic MapReduce HDFS

+2

In realtà penso che siano troppe domande per una domanda. Ma alcuni di loro sono davvero interessanti. –

+0

Sì, in realtà è solo una domanda: dove possiamo trovare materiali sulle migliori pratiche di Amazon MapReduce per l'analisi dei registri? Aggiornata la descrizione. – webdevbyjoss

risposta

3

Questa è una domanda molto molto aperta, ma qui ci sono alcune riflessioni che si potrebbe prendere in considerazione:

  • Uso Amazon SQS: questa è una coda distribuita, ed è molto utile per la gestione del flusso di lavoro, si ha un processo che scrive in coda non appena un registro è disponibile, e un altro che legge da esso, elabora il log descritto nel messaggio della coda e lo elimina al termine dell'elaborazione. Ciò garantirebbe che i registri vengano elaborati una sola volta.
  • Apache Flume come menzionato è molto utile per l'aggregazione dei registri. Questo è qualcosa che dovresti considerare, anche se non hai bisogno di tempo reale, dato che ti dà almeno un processo di aggregazione standardizzato.
  • Amazon ha recentemente rilasciato SimpleWorkFlow. Ho appena iniziato a esaminarlo, ma sembra promettente per gestire ogni fase della pipeline dei dati.

Speranza che ti dia qualche indizio.

Problemi correlati