Aperçu des technologies du Big data

MapReduce comme framework

MapReduce permet à la technologie Big Data telle que fournie par exemple par Hadoop, de fonctionner. Le Hadoop Data File System (HDFS) utilise ces composants pour la gestion de la persistance, exécute des fonctions sur des données et trouve des résultats. Les bases de données NoSQL, notamment MongoDB et Cassandra, stockent et localisent les informations pour les services respectifs par le biais de ces fonctions. Hive utilise ce framework pour créer les fondations d’un entrepôt de données.

Fonctionnement de Hadoop

Hadoop a vu le jour parce que les approches existantes n’étaient pas adaptées au traitement de volumes massifs de données, et pour relever le défi de l’indexation quotidienne du web. Google a développé un paradigme appelé MapReduce en 2004, Yahoo! a mis en place Hadoop comme implémentation de MapReduce en 2005 et a fini par le lancer en tant que projet open source en 2007. À l’instar des autres systèmes opérationnels, Hadoop possède les structures de base nécessaires à effectuer des calculs : un système de fichiers, un langage de programmation, une méthode pour distribuer les programmes ainsi générés à un cluster, un mode pour obtenir les résultats et arriver à une consolidation unique de ces derniers, ce qui est le but.

Avec Hadoop, le Big Data est distribué en segments étalés sur une série de nœuds s’exécutant sur des périphériques de base. Au sein de cette structure, les données sont dupliquées à différents endroits afin de récupérer l’intégralité des informations en cas de panne. Les données ne sont pas organisées par rangs et par colonnes relationnelles, comme dans le cas de la gestion classique de la persistance, ce qui comporte une capacité à stocker du contenu structuré, semi- structuré et non structuré.

Il y quatre types de nœuds intervenant au sein de HDFS :

  • Name Node: un facilitateur qui indique l’emplacement des données. Il reconnaît les nœuds disponibles et ceux qui ont échoué, et sait repérer les informations voulues dans le cluster.
  • Secondary Node: un backup du Name Node.
  • Job Tracker: coordonne le traitement des données utilisant MapReduce.
  • Slave Nodes: stockent les données et exécutent les commandes du Job Tracker.

     

Le Job Tracker est le point d’entrée d’un “map job” ou d’un processus à appliquer aux données. Un map job, qui est généralement une requête écrite en Java, constitue la première étape du processus MapReduce. Le Job Tracker demande au Name Node d’identifier et trouver les informations nécessaires pour compléter le job. Une fois ces informations obtenues, il soumet la requête aux Name Nodes concernés. La caractéristique massivement parallèle de MapReduce réside dans le fait que tout traitement de données demandé a lieu dans chaque nœud nommé.

Quand chaque nœud a fini l’élaboration, il stocke les résultats. Le client commence alors un « reduce job ». Les résultats sont ensuite consolidés pour déterminer la réponse à la requête initiale, puis accessibles sur le système de fichiers et prêts pour tout travail d’exploitation.

Pig

Le projet Apache Pig est un langage de programmation du flux de données de haut niveau ainsi qu’un framework d’exécution pour la création de programmes MapReduce dans Hadoop. Le langage pour cette plate-forme, connu sous le nom de Pig Latin, fournit une syntaxe abstraite de programmation pour la transformer en notation, ce qui apparente la programmation MapReduce à celle de SQL pour systèmes RDBMS. Avec les UDF (User Defined Functions), Pig Latin peut bénéficier d’extensions, que l’utilisateur peut écrire en Java, puis rappeler directement à partir du langage.

Hive

Apache Hive est une infrastructure d’entrepôt de données créée en complément de Hadoop (initialement par Facebook) pour fournir compression des données, lancement de requêtes ad hoc, et analyse de volumes massifs d’informations. Hive met à disposition un système pour structurer ces informations et les interroger par le biais d’un langage de type SQL appelé HiveQL, qui simplifie l’intégration avec les outils de BI et de visualisation.

Hbase

HBase est une base de données non relationnelle installée sur le système de fichiers Hadoop (HDFS). Orientée colonnes, elle fournit un stockage en continu en cas de panne matérielle et un accès rapide à des quantités importantes de données éparses. HBase ajoute aussi des fonctionnalités transactionnelles à Hadoop, permettant aux utilisateurs d’effectuer des mises à jour, des insertions et des suppressions. Développé initialement par Facebook pour leurs services de messagerie, HBase est aussi largement utilisé par eBay.

HCatalog

HCatalog est un service de gestion des tables et du stockage créé avec Apache Hadoop qui permet le partage des données entre différents outils d’élaboration, tels que Pig, Map Reduce, Streaming, et Hive, sans requérir un changement de format de schéma.

Flume

Flume est un système d’agents peuplant un cluster Hadoop, et déployés à travers une infrastructure IT pour la collecte de données destinées à être stockées et traitées par Hadoop.

Oozie

Oozie coordonne les jobs écrits en différents langages tels que MapReduce, Pig et Hive. Il s’agit d’un système de gestion des workflows qui relie les jobs et qui permet d’en spécifier la commande et les dépendances.

Mahout

Mahout est une librairie d’exploration de données qui implémente des algorithmes très connus pour la modélisation statistique et le clustering.

Sqoop

Sqoop est un set d’outils pour l’intégration de données qui permet à des bases non-Hadoop d’échanger avec des bases et des entrepôts relationnels classiques.

NoSQL(not only SQL)

NoSQL désigne une vaste catégorie de systèmes de stockage de bases de données très différents de l’architecture classique des bases relationnelles (RDBMS). Ces technologies utilisent leur propre langage de requêtes et sont souvent construites sur des structures de programmation avancées pour relations de type clé/valeur, objets définis, méthodes tabulaires ou tuples. Le terme est souvent utilisé pour décrire l’ensemble de bases de stockage classifiées comme Big Data. Dans le monde du Big Data se trouvent aujourd’hui principalement Cassandra, MongoDB, NuoDB, Couchbase et VoltDB.