Comprendre en profondeur
Hadoop
Hadoop
est un projet open source de la Apache
fondation. 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 Nutch
du moteur de recherche de texte. Hadoop
utilise les Map Reduce
technologies 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.
Hadoop
est 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 Hadoop
disponibles:
- 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: MAP
et REDUCE
pour 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' MapReduce
une 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 MapReduce
afin qu'elle puisse être exécutée dans Hadoop
ou
Extraire des données HDFS
ou 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 Hadoop
cluster.
Hadoop 2.0
Dans Hadoop 2.0
, HDFS
continue 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. MapReduce
n'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. HDFS
est 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. Hadoop
peut 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. 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, 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 Hadoop
est 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 Hadoop
raison du paradigme «déplacer le code vers les données».
Écosystème Hadoop
Voici les composants de l' Hadoop
écosystème:
HDFS : Hadoop
systè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 SQL
devrait pouvoir accéder aux données sur un Hadoop
cluster.
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
. Pig
les scripts sont automatiquement convertis en MapReduce
jobs par l' Pig
interpréteur.
ZooKeeper : C'est un service de coordination pour les applications distribuées.
Oozie : C'est un schedular
système de workflow pour gérer les Hadoop
travaux 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 Hadoop
des 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 Hadoop
clusters.
Ruche
Hive
est un outil d'infrastructure d'entrepôt de données pour traiter des données structurées Hadoop
. Il s'agit de Hadoop
ré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 SQL
un langage de type pour l'interrogation appelé HiveQL
ou HQL
.
Il est familier, rapide, évolutif et extensible.
Architecture de la ruche
Les composants suivants sont contenus dans l'architecture Hive:
Interface utilisateur : Hive
est une data warehouse
infrastructure qui peut créer une interaction entre l'utilisateur et HDFS
. Les interfaces utilisateur qui Hive
prennent en charge sont l'interface utilisateur Web Hive, la ligne de commande Hive et Hive HD Insight (dans Windows Server).
MetaStore : Hive
choisit respectivement database
servers
de stocker le schéma ou Metadata
des tables, bases de données, colonnes dans une table, leurs types de données et leur HDFS
mappage.
HiveQL Process Engine : HiveQL
est similaire à celui SQL
des requêtes sur les informations de schéma sur le Metastore
. C'est l'un des remplacements de l'approche traditionnelle du MapReduce
programme. Au lieu d'écrire MapReduce
dans Java
, nous pouvons écrire une requête pour MapReduce
et traiter.
Exceution Engine : La partie de conjonction du HiveQL
moteur de processus 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 identiques à ceux de MapReduce results
. Il utilise la saveur de MapReduce
.
HDFS ou HBase : Hadoop
Distributed File System ou HBase
sont les techniques de stockage de données pour stocker des données dans un système de fichiers.