J'ai besoin d'analyser les journaux d'accès Apache et les journaux Tomcat l'un après l'autre en utilisant map reduce. Peu de champs sont extraits du journal tomcat et reposent du journal Apache. J'ai besoin de fusionner/mapper les champs extraits en fonction de l'horodatage et d'exporter ces champs mappés dans un db relationnel traditionnel (ex: MySQL).Stockage des données de journaux analysés dans hadoop et exportation dans une base de données relationnelle
Je peux analyser et extraire des informations en utilisant une expression régulière ou un cochon. Le défi auquel je suis confronté concerne la façon de mapper les informations extraites des deux journaux dans un seul format ou fichier agrégé et comment exporter ces données vers MYSQL.
Peu approches que je pense à
1) sortie de la carte Réduire des deux journaux d'accès Apache et les journaux analysés tomcat dans des fichiers séparés et fusionner ceux dans un seul fichier (nouveau basé sur l'horodatage). Exportez ces données vers MySQL.
2) Utilisez Hbase ou Hive pour stocker des données sous forme de tableau dans Hadoop et d'exportation vers MySQL
3) écrire directement la sortie de la carte Réduire à l'aide de MySQL JDBC.
Quelle approche serait la plus viable et s'il vous plaît suggérer d'autres solutions alternatives que vous connaissez.
Merci Eric J'utilise l'approche basée sur les fichiers avec un léger changement de la fusion des données dans la base de données plutôt que de le faire dans mapreduce. Les données analysées provenant des deux journaux seront stockées dans deux tables de transfert distinctes et ces tables de transfert seront jointes pour obtenir une dernière donnée agrégée qui sera stockée dans la table finale. Pour votre question de savoir s'il est logique de mettre autant de données dans la base de données, les données analysées seraient des données utiles agrégées filtrées, ce qui est très inférieur par rapport aux enregistrements de fichiers journaux. La raison pour stocker des données dans la base de données relationnelle est de permettre aux applications traditionnelles d'avoir accès à ces données –