Alimenter au fil de l’eau Apache Hadoop

Contrairement à l’import massif de données comme évoqué dans le dernier billet, Apache Hadoop peut être alimenté par 2 autres applications Apache au fil de l’eau.
Apache Kafka : développé initialement par Linkedin, Kafka est un système de messagerie asynchrone (broker de messages) s’appuyant sur Zookeeper pour synchroniser les différentes instances.
Kafka est plus rapide que les classiques brokers JMS (Apache ActiveMQ, JBossMQ, Websphere MQ, …) car la distribution des messages se fait sans garantie d’ordre et sans confirmation du la réception du message (acknowledge).
Apache Flume: developpé pour alimenter initialement Hadoop des fichiers de logs, il existe plusieurs connecteurs permettant de collecter d’autres sources d’information (JMS, IRC,…)

Intégration base de données – Apache Hadoop

Il existe de plus en plus de connecteurs permettant d’importer massivemment les données d’un SGBD vers Apache Hadoop et réciproquement d’exporter les données vers la base de données après traitement sur le système de fichiers distribués HDFS d’Hadoop.
La solution par défaut proposée par la communauté Apache est Apache SQOOP. Toutes les bases de données avec un driver JDBC v2.0 sont supportées. Du code spécifique pour MySQL a été développé pour le support du mode direct et Quest Software a développé un connecteur sur Apache SQOOP permettant d’accélérer les imports dans Oracle.
De même Teradata essaye de suivre le mouvement en proposant des connecteurs avec leur nouvelle suite Teradata Aster.

Oracle Data Integrator Application Adapter for Hadoop

Oracle a développé un produit de type ETL basé sur Apache Hive : Oracle Data Integrator Application Adapter for Hadoop.
Les développements sont en SQL et Hive génére un job de Map/Reduce permettant d’exploiter les données sous Apache Hadoop.

D’autres produits ETL intégrent aussi maintenant un générateur de Map/Reduce :
Talend Big Data qui est en fait le produit ETL Talend Open Studio avec des composants comme Apache Pig dans la palette. Le gros apport de cette solution est de pouvoir générer des executables java (librairie jar) qui ne nécessite pas de runtime Talend sur les serveurs.
– Informatica a aussi intégré une version Big Data à leur produit PowerCenter

L’élément principal à regarder lors du choix d’un de ces produits est de vérifier que le produit ETL reste juste un IDE et que le code généré ne demande pas un produit à installer sur les serveurs. Seul Talend Big Data semble respecter cette règle