Comprendre en profondeur
Hadoop
Hadoopest un projet open source de la Apachefondation. Il s'agit d'un framework écrit Java, développé à l'origine par Doug Cutting en 2005. Il a été créé pour prendre en charge la distribution Nutchdu moteur de recherche de texte. Hadooputilise les Map Reducetechnologies de système de fichiers de Google et Google comme base.
Caractéristiques de Hadoop
- Il est optimisé pour gérer des quantités massives de données structurées, semi-structurées et non structurées à l'aide de matériel de base.
- Il n'a rien partagé d'architecture.
- Il réplique ses données sur plusieurs ordinateurs de sorte que si l'un d'entre eux tombe en panne, les données peuvent toujours être traitées à partir d'une autre machine qui stocke sa réplique.
Hadoopest pour un débit élevé plutôt qu'une faible latence. Il s'agit d'une opération par lots traitant d'énormes quantités de données; donc le temps de réponse n'est pas immédiat.
- Il complète le traitement des transactions en ligne et le traitement analytique en ligne. Cependant, ce n'est pas un remplacement pour un
RDBMS.
- Ce n'est pas bon lorsque le travail ne peut pas être parallélisé ou lorsqu'il existe des dépendances dans les données.
- Ce n'est pas bon pour le traitement de petits fichiers. Cela fonctionne mieux avec d'énormes fichiers de données et ensembles de données.
Versions de Hadoop
Il existe deux versions de Hadoopdisponibles:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Il comprend deux parties principales:
1. Cadre de stockage des données
Il s'agit d'un système de fichiers à usage général appelé Hadoop Distributed File System ( HDFS).
HDFS est sans schéma
Il stocke simplement des fichiers de données et ces fichiers de données peuvent être dans n'importe quel format.
L'idée est de stocker les fichiers le plus près possible de leur forme d'origine.
Cela fournit à son tour aux unités commerciales et à l'organisation la flexibilité et l'agilité indispensables sans être trop préoccupés par ce qu'ils peuvent mettre en œuvre.
2. Cadre de traitement des données
Il s'agit d'un modèle de programmation fonctionnelle simple initialement popularisé par Google sous le nom de MapReduce.
Il utilise essentiellement deux fonctions: MAPet REDUCEpour traiter les données.
Les "Mappers" prennent un ensemble de paires clé-valeur et génèrent des données intermédiaires (qui est une autre liste de paires clé-valeur).
Les "Réducteurs" agissent alors sur cette entrée pour produire les données de sortie.
Les deux fonctions fonctionnent apparemment de manière isolée l'une avec l'autre, permettant ainsi au traitement d'être hautement distribué de manière hautement parallèle, avec tolérance aux pannes et évolutive.
Limitations de Hadoop 1.0
La première limite était l'exigence d' MapReduceune expertise en programmation.
Il ne prenait en charge que le traitement par lots, ce qui, bien qu'adapté à des tâches telles que l'analyse de journaux, des projets d'exploration de données à grande échelle, mais qui ne convenait pas à d'autres types de projets.
Une limitation majeure était qu'il Hadoop 1.0était étroitement lié au calcul MapReduce, ce qui signifiait que les fournisseurs de gestion de données établis se retrouvaient avec deux opinions:
Soit réécrivez leur fonctionnalité dans MapReduceafin qu'elle puisse être exécutée dans Hadoopou
Extraire des données HDFSou les traiter en dehors de Hadoop.
Aucune des options n'était viable car elle entraînait des inefficacités de processus causées par le transfert de données à l'intérieur et à l'extérieur du Hadoopcluster.
Hadoop 2.0
Dans Hadoop 2.0, HDFScontinue d'être un cadre de stockage de données.
Cependant, un nouveau cadre séparé de la gestion des ressources appelée Y et A utre R esource N egotiater ( YARN ) a été ajouté.
Toute application capable de se diviser en tâches parallèles est prise en charge par YARN.
YARN coordonne l'attribution des sous-tâches de la candidature soumise, améliorant ainsi davantage la flexibilité, l'évolutivité et l'efficacité des applications.
Il fonctionne en ayant un maître d'application à la place de Job Tracker , exécutant des applications sur des ressources régies par le nouveau gestionnaire de nœuds .
ApplicationMaster est capable d'exécuter n'importe quelle application et pas seulement MapReduce.
Cela signifie qu'il ne prend pas seulement en charge le traitement par lots, mais également le traitement en temps réel. MapReducen'est plus la seule option de traitement des données.
Avantages de Hadoop
Il stocke les données dans son format natif à partir de. Aucune structure n'est imposée lors de la saisie des données ou du stockage des données. HDFSest le schéma moins. Ce n'est que plus tard, lorsque les données doivent être traitées, que la structure s'impose aux données brutes.
Il est évolutif. Hadooppeut stocker et distribuer de très grands ensembles de données sur des centaines de serveurs bon marché fonctionnant en parallèle.
Il résiste à l'échec. Hadoopest la tolérance aux pannes. Il pratique la réplication des données avec diligence, ce qui signifie que chaque fois que des données sont envoyées à un nœud, les mêmes données sont également répliquées sur d'autres nœuds du cluster, garantissant ainsi qu'en cas de défaillance du nœud, il y aura toujours une autre copie des données disponibles.
C'est flexible. L'un des principaux avantages de Hadoopest qu'il peut fonctionner avec tout type de données: structurées, non structurées ou semi-structurées. En outre, le traitement est extrêmement rapide en Hadoopraison du paradigme «déplacer le code vers les données».
Écosystème Hadoop
Voici les composants de l' Hadoopécosystème:
HDFS : Hadoopsystème de fichiers distribué. Il stocke simplement les fichiers de données aussi près que possible du formulaire d'origine.
HBase : C'est la base de données Hadoop et se compare bien avec un RDBMS. Il prend en charge le stockage de données structuré pour les grandes tables.
Hive : Il permet l'analyse de grands ensembles de données en utilisant un langage très similaire à la norme ANSI SQL, ce qui implique que toute personne familière avec SQLdevrait pouvoir accéder aux données sur un Hadoopcluster.
Pig : C'est un langage de flux de données facile à comprendre. Cela aide à l'analyse de grands ensembles de données, ce qui est tout à fait dans l'ordre Hadoop. Pigles scripts sont automatiquement convertis en MapReducejobs par l' Piginterpréteur.
ZooKeeper : C'est un service de coordination pour les applications distribuées.
Oozie : C'est un schedularsystème de workflow pour gérer les Hadooptravaux Apache .
Mahout : Il s'agit d'une bibliothèque évolutive d'apprentissage automatique et d'exploration de données.
Chukwa : C'est un système de collecte de données pour gérer un grand système distribué.
Sqoop : Il est utilisé pour transférer des données en masse entre Hadoopdes magasins de données structurés tels que des bases de données relationnelles.
Ambari : C'est un outil Web pour l'approvisionnement, la gestion et la surveillance des Hadoopclusters.
Ruche
Hiveest un outil d'infrastructure d'entrepôt de données pour traiter des données structurées Hadoop. Il s'agit de Hadooprésumer le Big Data et facilite les requêtes et l'analyse.
Hive n'est pas
Une base de données relationnelle
Une conception pour le traitement des transactions en ligne ( OLTP).
Un langage pour les requêtes en temps réel et les mises à jour au niveau des lignes.
Caractéristiques de Hive
Il stocke le schéma dans la base de données et les données traitées dans HDFS.
Il est conçu pour OLAP.
Il fournit SQLun langage de type pour l'interrogation appelé HiveQLou HQL.
Il est familier, rapide, évolutif et extensible.
Architecture de la ruche
Les composants suivants sont contenus dans l'architecture Hive:
Interface utilisateur : Hiveest une data warehouseinfrastructure qui peut créer une interaction entre l'utilisateur et HDFS. Les interfaces utilisateur qui Hiveprennent en charge sont l'interface utilisateur Web Hive, la ligne de commande Hive et Hive HD Insight (dans Windows Server).
MetaStore : Hivechoisit respectivement database serversde stocker le schéma ou Metadatades tables, bases de données, colonnes dans une table, leurs types de données et leur HDFSmappage.
HiveQL Process Engine : HiveQLest similaire à celui SQLdes requêtes sur les informations de schéma sur le Metastore. C'est l'un des remplacements de l'approche traditionnelle du MapReduceprogramme. Au lieu d'écrire MapReducedans Java, nous pouvons écrire une requête pour MapReduceet traiter.
Exceution Engine : La partie de conjonction du HiveQLmoteur de processus et MapReduceest le Hivemoteur d'exécution. Le moteur d'exécution traite la requête et génère des résultats identiques à ceux de MapReduce results. Il utilise la saveur de MapReduce.
HDFS ou HBase : HadoopDistributed File System ou HBasesont les techniques de stockage de données pour stocker des données dans un système de fichiers.