Tutoriel pour apprendre à travailler avec HBase « Faire du NoSQL c'est juste fa

Tutoriel pour apprendre à travailler avec HBase « Faire du NoSQL c'est juste faire des choix intelligents » Par Juvénal CHOKOGOUE Date de publication : 14 janvier 2019 Pour réagir au contenu de ce tutoriel, un espace de dialogue vous est proposé sur le forum. Commentez En complément sur Developpez.com • Hadoop : la nouvelle infrastructure de gestion de données • Le SQL dans Hadoop : HiveQL et Pig • introduction à Spark pour l'interrogation de données massives • Le SQL dans Hadoop - Partie 2 : les moteurs natifs SQL sur Hadoop Tutoriel pour apprendre à travailler avec HBase par Juvénal CHOKOGOUE I - Introduction..............................................................................................................................................................3 II - Concept de base d'HBase.....................................................................................................................................3 II-A - Définition d'HBase.........................................................................................................................................3 II-B - La Base de Données en HBase...................................................................................................................4 III - Architecture et fonctionnement du hbase...........................................................................................................11 IV - Utilisation de HBase........................................................................................................................................... 14 IV-A - Règles de modélisation d'une table HBase.............................................................................................. 14 IV-B - Exploitation d'une table HBase................................................................................................................. 15 IV-C - Mapping d'une Base de Données Relationnelle vers une table HBase....................................................18 IV-D - Phoenix et HBase..................................................................................................................................... 18 V - Conclusion du tutoriel..........................................................................................................................................19 VI - Note de la rédaction de Developpez.com..........................................................................................................20 - 2 - Copyright ® 2019 Juvénal CHOKOGOUE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://juvenal-chokogoue.developpez.com/tutoriels/apprendre-travailler-hbase/ Tutoriel pour apprendre à travailler avec HBase par Juvénal CHOKOGOUE I - Introduction Avec toute la volumétrie des données dont on dispose aujourd'hui et toutes leurs caractéristiques, c'est impossible de penser « Gestion de données » tel qu'on l'a fait dans le passé, c'est-à-dire centraliser le stockage des données sur un serveur et centraliser le traitement de ces données sur un SGBDR. Dans l'ère du Big Data, l'approche appropriée consiste à distribuer le stockage des données et à paralléliser leur traitement sur les nœuds d'un cluster d'ordinateurs. Les moteurs de bases de données relationnelles ne sont pas capables d'assurer la cohérence des données sur plusieurs nœuds d'un cluster. Leur capacité de distribution maximale est estimée à cinq nœuds, ce qui est largement insuffisant pour répondre aux exigences de volumétrie des données. Pour dépasser ces limites, de nouveaux SGBD dit "NoSQL" ont vu le jour. La particularité de ceux-ci est qu'ils n'imposent pas de structure particulière aux données, ils relâchent les contraintes qui empêchent les SGBDR de distribuer le stockage des données et sont linéairement scalables. HBase fait partie de cette catégorie de SGBD. Plus précisément, HBase fait partie de la catégorie de SGBD orientéscolonne, et est l'un des tous premiers SGBD NoSQL à large échelle mis sur pied. Créé en fin d'année 2006 par Chad Walters et Jim Kellerman, HBase a rejoint l'écosystème Hadoop en octobre 2007 et en juin 2010, il est devenu un projet prioritaire de la fondation Apache. HBase est de plus en plus utilisé dans beaucoup d'entreprises qui gèrent des données même de volumétrie modeste, cela grâce à sa structure familière aux utilisateurs métier et à cause de sa grande capacité de gestion de données. À cause de l'exigence croissante des entreprises demandant aux développeurs et consultants d'avoir des connaissances sur HBase, nous allons mettre un point d'honneur à son étude rigoureuse dans ce tutoriel. Nous n'allons pas juste nous limiter à expliquer les principes de fonctionnement d'HBase, mais nous allons vous aider à développer des compétences opérationnelles dessus. Ainsi, à la fin du tutoriel, vous serez capables d'utiliser HBase. II - Concept de base d'HBase HBase fait partie d'une catégorie de SGBD NoSQL appelée les SGBD orientés colonne. Dans cette catégorie de SGBD, la notion de base de données et la façon dont les données sont stockées sont très différentes de ce que vous avez l'habitude d'utiliser jusqu'ici (les SGBDR), même si visuellement ils peuvent être similaires. Dans cette partie, nous allons clarifier ce qu'est HBase et nous allons expliquer ce qu'HBase entend par base de données. II-A - Définition d'HBase Avant de donner la définition d'HBase, commençons par dire ce qu'il n'est pas : HBase n'est pas un SGBD au sens strict du terme. Il n'implémente pas un schéma de base de données modélisée à l'aide d'un MCD, et ne fournit pas les fonctionnalités de gestion de ce schéma telles que le typage des données, les mécanismes de clés primaires, les clés étrangères, d'index, le langage d'interrogation de données, ou encore la gestion des transactions. À la place de "système de gestion de base de données", HBase est plus ce que l'on pourrait qualifier d'"entrepôt de stockage de données". Là où les SGBD assurent à la fois le stockage et le traitement des données, HBase lui, est plus spécialisé sur le stockage de celles-ci. Il utilise des modèles de calcul externe pour leur requêtage. HBase est un SGBD distribué, orienté colonne qui fournit l'accès en temps réel, aussi bien en lecture qu'en écriture, aux données stockées sur le HDFS. Là où le HDFS fournit un accès séquentiel aux données en batch, non approprié pour des problématiques d'accès rapide à la donnée comme le Streaming, HBase couvre ces lacunes et offre un accès rapide aux données stockées sur le HDFS. Il faut comprendre par là que HBase est perçu par le HDFS comme un client à qui il fournit les données. HBase a été conçu pour : • ne fonctionner que sur un cluster Hadoop ; • être linéairement scalable, c'est-à-dire que supporte l'ajout de nœuds au cluster ; • stocker de très grosses volumétries de données épaves, c'est-à-dire des données à structure irrégulière, avec plein de valeurs nulles comme les matrices creuses en algèbre. Nous y reviendrons plus bas ; • fournir un accès en temps réel à cette grosse volumétrie de données aussi bien pour les opérations de lecture que d'écriture sur le HDFS ; • s'appuyer sur des modèles de calculs distribués tels que le MapReduce (et donc tous ses langages d'abstraction tels que Hive, Pig, Cascading…) pour l'exploitation de ses données. En réalité, HBase est l'implémentation Hadoop du projet Google Big Table. Big Table est le premier SGBD distribué développé par Google qui s'appuie sur le GFS (Google File System) dont le HDFS est l'implémentation. - 3 - Copyright ® 2019 Juvénal CHOKOGOUE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://juvenal-chokogoue.developpez.com/tutoriels/apprendre-travailler-hbase/ Tutoriel pour apprendre à travailler avec HBase par Juvénal CHOKOGOUE Attention ! Il n'y a théoriquement aucune raison qui puisse laisser penser que HBase ne puisse pas utiliser un autre système de fichier distribué que le HDFS. II-B - La Base de Données en HBase La particularité de HBase est qu'il n'implémente pas de concept de « base de données ». Par conséquent la manière dont on concevait les bases de données dans les approches traditionnelles ne peut pas être utilisée avec les approches NoSQL en général et avec HBase en particulier. Nous insistons là-dessus parce que dans notre travail professionnel quotidien, nous avons vu beaucoup d'entreprises commencer leur projet de migration vers HBase avec la conception d'un MCD. Ceci vient sûrement du fait que dans le passé, et jusqu'à présent, lorsqu'on veut concevoir une base de données, on commence par concevoir un MCD, qui sera par la suite transformé en un modèle relationnel (MRD) et finalement en script SQL, qui sera exécuté par le moteur du SGBDR. Si vous exercez le métier de consultant, d'ingénieur, d'analyseur de base de données ou tout autre profession relative à la construction des bases de données, ou si vous êtes étudiants, alors il y a de fortes chances que vous ayez été formés à débuter la création d'une base de données par un MCD. Cette façon de faire est devenu normale, voire même de l'ordre du réflexe. Mais avec le NoSQL en général et HBase en particulier, tout change : premièrement le concept de base de données n'est pas le même que dans les SGBDR, en plus il varie selon les catégories de SGBD NoSQL, et deuxièmement vous ne commencez pas la conception de votre « base de données » par un MCD. Nous allons voir plus bas comment modéliser une base de données en HBase. Pour l'heure, vous devez garder à l'esprit que dans le NoSQL, le schéma de « base de données » que vous allez concevoir a pour but d'assurer la distribution du stockage et faciliter l'accès des données dans un cluster pour les traitements parallèles. Gardez bien cela à l'esprit ! Le concept de base de données en HBase est la table HBase. En d'autres termes, développer et modéliser une base de données en HBase revient à implémenter une ou plusieurs tables HBase. Une table HBase est un tableau multidimensionnel de données distribué et persisté sur le HDFS sous forme de fichiers spécifiques appelés HFiles. Voici les dimensions qui uploads/Litterature/ apprendre-travailler-hbase.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager