Comprendre en profondeur
Hadoop
Hadoop
est un projet open source de la Apache
fondation. Il s'agit d'un cadre écrit en Java
développé à l'origine par Doug Cutting en 2005. Il a été créé pour supporter la distribution de Nutch
le moteur de recherche de textes. Hadoop
utilise l'interface de Google Map Reduce
et Google File System Technologies comme sa fondation.
Caractéristiques de Hadoop
- Il est optimisé pour traiter des quantités massives de données structurées, semi-structurées et non structurées en utilisant du matériel de base.
- Elle n'a partagé aucune architecture.
- Il réplique ses données dans plusieurs ordinateurs, de sorte que si l'un d'eux tombe en panne, les données peuvent toujours être traitées à partir d'une autre machine qui stocke sa réplique.
-
Hadoop
vise un débit élevé plutôt qu'une faible latence. Il s'agit d'une opération par lots qui traite des quantités massives de données ; le temps de réponse n'est donc pas immédiat.
- Il complète le traitement des transactions en ligne et le traitement analytique en ligne. Toutefois, il ne remplace pas un
RDBMS
.
- Elle n'est pas bonne lorsque le travail ne peut pas être parallélisé ou lorsqu'il existe des dépendances au sein des données.
- Il n'est pas bon pour le traitement des petits fichiers. Il fonctionne mieux avec les fichiers de données volumineux et les ensembles de données.
Versions d'Hadoop
Il existe deux versions de Hadoop
disponible :
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Il se compose de deux parties principales :
1. Cadre de stockage des données
Il s'agit d'un système de fichiers polyvalent 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 des fichiers aussi proches que possible de leur forme originale.
Les unités commerciales et l'organisation disposent ainsi de la souplesse et de l'agilité dont elles ont tant besoin, sans avoir à se soucier outre mesure de ce qu'elles peuvent mettre en œuvre.
2. Cadre du 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 : MAP
y REDUCE
pour traiter les données.
Les "mappeurs" reçoivent un ensemble de paires clé-valeur et génèrent des données intermédiaires (qui sont une autre liste de paires clé-valeur).
Les "réducteurs" agissent ensuite sur cette entrée pour produire les données de sortie.
Ces deux fonctions fonctionnent apparemment de manière isolée l'une de l'autre, ce qui permet de distribuer le traitement de manière hautement parallèle, tolérante aux pannes et évolutive.
Limites d'Hadoop 1.0
-
La première limitation était l'exigence de MapReduce
l'expertise en programmation.
-
Il ne prenait en charge que le traitement par lots, ce qui, bien que convenant à des tâches telles que l'analyse de journaux et les projets d'exploration de données à grande échelle, ne convenait pas à d'autres types de projets.
-
Une limitation majeure était que Hadoop 1.0
a été étroitement couplé, sur le plan informatique, avec MapReduce
Ce qui signifie que les fournisseurs de gestion de données établis se retrouvaient avec deux opinions :
-
Soit réécrire leur fonctionnalité en MapReduce
afin qu'il puisse être exécuté en Hadoop
ou
-
Extraire les données de HDFS
ou le traiter en dehors de Hadoop
.
Aucune des options n'était viable, car elle entraînait des inefficacités de processus dues au fait que les données entraient et sortaient de la base de données. Hadoop
cluster.
Hadoop 2.0
En Hadoop 2.0
, HDFS
reste le cadre de stockage des données.
Cependant, un nouveau cadre de gestion des ressources distinct, appelé Y et A autre R esource N négociateur ( YARN ) a été ajouté.
Toute application capable de se diviser en tâches parallèles est prise en charge par YARN.
YARN coordonne l'allocation des sous-tâches de l'application soumise, ce qui améliore encore la flexibilité, l'évolutivité et l'efficacité des applications.
Il fonctionne en ayant un Maître d'application à la place de Suivi des emplois l'exécution d'applications sur des ressources régies par de nouvelles Gestionnaire de nœuds .
ApplicationMaster est capable d'exécuter n'importe quelle application et non seulement MapReduce
.
Cela signifie qu'il ne prend pas seulement en charge le traitement par lots mais aussi le traitement en temps réel. MapReduce
n'est plus la seule option de traitement des données.
Avantages d'Hadoop
Il stocke les données dans leur format natif. Aucune structure n'est imposée lors de la saisie ou du stockage des données. HDFS
est sans schéma. Ce n'est que plus tard, lorsque les données doivent être traitées, que la structure est imposée aux données brutes.
Il est évolutif. Hadoop
peut stocker et distribuer de très grands ensembles de données sur des centaines de serveurs peu coûteux qui fonctionnent en parallèle.
Elle est résistante à l'échec. Hadoop
est 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, ces mêmes données sont également répliquées vers d'autres nœuds du cluster, garantissant ainsi qu'en cas de défaillance d'un nœud, il y aura toujours une autre copie des données disponibles.
Elle est flexible. L'un des principaux avantages de la Hadoop
est qu'il peut travailler avec tout type de données : structurées, non structurées ou semi-structurées. De plus, le traitement est extrêmement rapide en Hadoop
en raison du paradigme du "passage du code aux données".
Écosystème Hadoop
Voici les composantes de la Hadoop
écosystème :
HDFS : Hadoop
Système de fichiers distribués. Il stocke simplement des fichiers de données aussi proches que possible de leur forme originale.
HBase : C'est la base de données d'Hadoop et elle se compare bien à une RDBMS
. Il prend en charge le stockage de données structurées pour les grandes tables.
Ruche : Il permet d'analyser de grands ensembles de données à l'aide d'un langage très similaire à celui de l'informatique standard. ANSI SQL
ce qui implique que toute personne familière avec SQL
devrait pouvoir accéder aux données sur un Hadoop
cluster.
Cochon : Il s'agit d'un langage de flux de données facile à comprendre. Il aide à l'analyse de grands ensembles de données, ce qui n'est pas du tout le cas avec le langage de flux de données. Hadoop
. Pig
sont automatiquement convertis en scripts MapReduce
emplois par le Pig
interprète.
ZooKeeper : Il s'agit d'un service de coordination pour les applications distribuées.
Oozie : C'est un flux de travail schedular
pour gérer Apache Hadoop
emplois.
Mahout : Il s'agit d'une bibliothèque évolutive d'apprentissage automatique et d'exploration de données.
Chukwa : Il s'agit d'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 vrac entre Hadoop
et les magasins de données structurés tels que les bases de données relationnelles.
Ambari : Il s'agit d'un outil basé sur le web pour le provisionnement, la gestion et la surveillance. Hadoop
clusters.
Ruche
Hive
est un outil d'infrastructure d'entrepôt de données qui permet de traiter des données structurées en Hadoop
. Il se trouve au sommet de Hadoop
pour résumer les Big Data et faciliter l'interrogation 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 la ruche
-
Il stocke le schéma dans la base de données et traite les données dans la base de données. HDFS
.
-
Il est conçu pour OLAP
.
-
Il prévoit SQL
un langage de requête appelé HiveQL
o HQL
.
-
Il est plus familier, rapide, évolutif et extensible.
Architecture des ruches
Les composants suivants sont contenus dans l'architecture des ruches :
-
Interface utilisateur : Hive
es un data warehouse
une infrastructure capable de créer une interaction entre l'utilisateur et HDFS
. Les interfaces utilisateur qui Hive
Les supports sont Hive Web UI, Hive Command line et Hive HD Insight (dans Windows Server).
-
MetaStore : Hive
choisit des database
servers
pour stocker le schéma ou Metadata
de tables, de bases de données, de colonnes dans une table, de leurs types de données et HDFS
cartographie.
-
Moteur de processus HiveQL : HiveQL
est similaire à SQL
pour l'interrogation d'informations sur le schéma de la base de données. Metastore
. Il s'agit de l'un des substituts de l'approche traditionnelle en matière d'éducation. MapReduce
programme. Au lieu d'écrire MapReduce
en Java
nous pouvons écrire une requête pour MapReduce
et le traiter.
-
Moteur d'exécution : La partie conjonction de HiveQL
moteur de traitement et MapReduce
est le Hive
Moteur d'exécution. Le moteur d'exécution traite la requête et génère des résultats de la même manière que le moteur de recherche. MapReduce results
. Il utilise la saveur de MapReduce
.
-
HDFS ou HBase : Hadoop
Système de fichiers distribués ou HBase
sont les techniques de stockage de données pour stocker les données dans le système de fichiers.
0 votes
Hadoop : Système de fichiers distribués Hadoop + Modèle de traitement informatique MapReduce. HBase : Stockage clé-valeur, bon pour la lecture et l'écriture en quasi temps réel. Ruche : Utilisé pour l'extraction de données à partir du HDFS en utilisant une syntaxe de type SQL. Cochon : est un langage de flux de données pour la création d'ETL.