Je joue avec Hadoop et j'ai mis en place un cluster à deux nœuds sur Ubuntu. L'exemple WordCount fonctionne très bien.Trouver des lignes correspondantes avec Hadoop/MapReduce
Maintenant, je voudrais écrire mon propre programme MapReduce pour analyser des données de log (principale raison: il semble simple et j'ai beaucoup de données)
Chaque ligne du hast journal ce format
<UUID> <Event> <Timestamp>
où l'événement peut être INIT, START, STOP, ERROR et un autre. Ce qui m'intéresse le plus, c'est le temps écoulé entre les événements START et STOP pour le même UUID.
Par exemple, mon journal contient des entrées comme celles-ci
35FAA840-1299-11DF-8A39-0800200C9A66 START 1265403584
[...many other lines...]
35FAA840-1299-11DF-8A39-0800200C9A66 STOP 1265403777
Mon actuelle, le programme linéaire lit les fichiers, se souvient des événements de départ en mémoire, et écrit le temps écoulé à un fichier une fois qu'il a trouvé la événement d'extrémité correspondante (lignes avec d'autres événements sont actuellement ignorés, les événements d'erreur invalident un UUID et il sera ignoré, aussi)
Je voudrais au port ce à un programme Hadoop/MapReduce. Mais je ne suis pas sûr de savoir comment faire la correspondance des entrées. La division/Tokenizing du fichier est facile, et je suppose que trouver les correspondances sera une classe de réduction. Mais à quoi cela ressemblerait-il? Comment trouver des entrées dans un travail MapReduce?
Veuillez garder à l'esprit que mon objectif principal est de comprendre Hadopo/MapReduce; Les liens vers Pig et d'autres programmes Apache sont les bienvenus, mais je voudrais résoudre celui-ci avec de purs Hadoop/MapReduce. Je vous remercie.
1)Étant donné que le journal est pris d'une application en cours d'exécution, certains événements de départ peuvent pas encore des événements de fin correspondant et il y aura finaux événements sans startevents, en raison de logfile division
Bien sûr, cela est logique. Au lieu de trouver des correspondances, je les regroupe par clé. Cela me permettrait également d'analyser les autres événements dans le futur. Merci – phisch