C'est un peu une question naïve mais je suis novice dans le paradigme NoSQL et je n'y connais pas grand chose. Donc, si quelqu'un peut m'aider à bien comprendre la différence entre HBase et Hadoop ou donner des indications qui pourraient m'aider à comprendre la différence.
Jusqu'à présent, j'ai fait des recherches et acc. A ma connaissance, Hadoop fournit un cadre pour travailler avec des blocs de données bruts (fichiers) dans HDFS et HBase est le moteur de base de données situé au-dessus de Hadoop, qui fonctionne essentiellement avec des données structurées plutôt que des blocs de données brutes. Hbase fournit une couche logique sur HDFS, tout comme SQL. Est-ce correct?
Pls n'hésitez pas à me corriger.
Merci.
Hadoop est essentiellement composé de 3 éléments: un FS (système de fichiers distribués Hadoop), un cadre de calcul (MapReduce) et un pont de gestion (encore un négociateur de ressources). HDFS permet de stocker d’énormes quantités de données dans de manière distribuée (offre un accès en lecture/écriture plus rapide) et redondante (offre une meilleure disponibilité). Et MapReduce vous permet de traiter ces énormes données de manière distribuée et parallèle. Mais MapReduce ne se limite pas à seulement HDFS. En tant que FS, HDFS manque la capacité de lecture/écriture aléatoire. Elle convient aux accès séquentiels aux données. C'est ici qu'intervient HBase. Il s'agit d'une base de données NoSQL qui s'exécute sur votre cluster Hadoop et vous fournit un accès en lecture/écriture aléatoire en temps réel à vos données. .
Vous pouvez également stocker des données structurées et non structurées dans Hadoop et HBase. Ils vous fournissent tous les deux de multiples mécanismes pour accéder aux données, comme le shell et d’autres API. De plus, HBase stocke les données sous forme de paires clé/valeur de manière colonnaire, tandis que HDFS stocke les données sous forme de fichiers à plat. Certaines des caractéristiques principales des deux systèmes sont:
Hadoop
HBase
Hadoop est particulièrement adapté au traitement par lots en mode hors connexion, tandis que HBase est utilisé lorsque vous avez des besoins en temps réel.
Une comparaison analogue serait entre MySQL et Ext4.
Apache Hadoop le projet comprend quatre modules clés
HBase est une base de données distribuée évolutive qui prend en charge le stockage de données structurées pour les grandes tables. Tout comme Bigtable
exploite le stockage de données distribué fourni par le système de fichiers Google, Apache HBase fournit des fonctionnalités similaires à Bigtable au-dessus de Hadoop et HDFS.
Quand utiliser HBase:
Mais HBase a quelques limitations
Résumé:
Pensez à HBase lorsque vous chargez des données par clé, recherchez des données par clé (ou une plage), fournissez des données par clé, interrogez des données par clé ou stockez des données par ligne non conformes à un schéma.
Jetez un coup d'oeil aux choses à faire et à ne pas faire de HBase de cloudera blog.
Hadoop utilise le système de fichiers distribué, c'est-à-dire HDFS, pour stocker bigdata.Mais il existe certaines limitations de HDFS et afin de surmonter ces limitations, des bases de données NoSQL telles que HBase, Cassandra et Mongodb ont été créées.
Hadoop ne peut effectuer qu'un traitement par lots et les données ne seront accessibles que de manière séquentielle. Cela signifie que vous devez rechercher l'intégralité du jeu de données, même pour le plus simple des travaux. Un jeu de données volumineux, une fois traité, génère un autre jeu de données considérable, qui doit également être traité de manière séquentielle. À ce stade, une nouvelle solution est nécessaire pour accéder à n’importe quel point de données en une seule unité de temps (accès aléatoire).
Comme tous les autres systèmes de fichiers, HDFS nous fournit un stockage, mais de manière tolérante aux pannes, avec un débit élevé et un risque moins élevé de perte de données (en raison de la réplication). Mais, en tant que système de fichiers, HDFS ne dispose pas d’accès aléatoire en lecture et en écriture. C'est là que HBase entre en image. C’est un magasin Big Data distribué, évolutif et modelé sur BigTable de Google. Cassandra est un peu similaire à hbase.
Remarque:
Vérifiez les démons HDFS (surlignés en vert) comme DataNode (serveurs de région co-localisés) et NameNode dans le cluster avec HBase et Hadoop HDFS.
[~ # ~] hdfs [~ # ~] est un système de fichiers distribué bien adapté au stockage de gros fichiers. qui ne fournit pas de recherches d'enregistrement individuelles rapides dans les fichiers.
HBase , d’autre part, est construit sur HDFS et fournit des recherches rapides d’enregistrements (et des mises à jour) pour les grands tableaux. Cela peut parfois être un point de confusion conceptuelle. HBase place en interne vos données dans des "StoreFiles" indexés qui existent sur HDFS pour les recherches à grande vitesse.
Comment ça ressemble?
Eh bien, au niveau de l’infrastructure, chaque machine à démaquiller du cluster a les démons suivants
Comment est-ce rapide avec des recherches?
HBase effectue des recherches rapides sur HDFS (parfois avec d'autres systèmes de fichiers distribués également) en tant que stockage sous-jacent, à l'aide du modèle de données suivant.
Table
Rangée
Colonne
Colonne Famille
Qualificateur de colonne
Cellule
Horodatage
Flux de demandes de lecture du client:
Qu'est-ce que la table méta dans l'image ci-dessus?
Après toutes les informations, le flux de lecture HBase est destiné à la consultation de ces entités
- Dans un premier temps, le scanner recherche les cellules Row dans le cache Block - le cache de lecture. Les valeurs de clé récemment lues sont mises en cache ici et les moins récemment utilisées sont expulsées lorsque la mémoire est nécessaire.
- Ensuite, l’analyseur recherche dans MemStore , le cache d’écriture en mémoire contenant les écritures les plus récentes.
- Si l'analyseur ne trouve pas toutes les cellules de ligne dans le MemStore et le cache de cache, HBase utilisera les index et les filtres de bloom de cache de cache pour charger HFiles en mémoire, qui peut contenir les cellules de la ligne cible.
sources et plus d'informations:
Référence: http://www.quora.com/What-is-the-difference-between-HBASE-and-HDFS-in-Hadoop
Hadoop est un nom général pour plusieurs sous-systèmes: 1) HDFS. Un système de fichiers distribué qui distribue les données sur un cluster d'ordinateurs en prenant en charge la redondance, etc. 2) Mapper Réduire. Un système de gestion des tâches au-dessus de HDFS - pour gérer les travaux de réduction de carte (et autres types) traitant les données stockées sur HDFS.
En gros, cela signifie que c'est un système hors ligne - vous stockez des données sur HDFS et vous pouvez les traiter en exécutant des tâches.
HBase d'autre part dans une base de données basée sur des colonnes. Il utilise HDFS comme stockage - qui se charge de la sauvegarde\redondance\etc mais c’est un "magasin en ligne" - ce qui signifie que vous pouvez l’interroger sur une ligne spécifique\rangées etc. et obtenir une valeur immédiate.