HBase Créer une table avec Java Exemple d'API et de shell

⚡ Résumé intelligent

HBase stocke les données dans des tables, et vous pouvez créer et gérer ces tables de deux manières : via le Java API avec HTableDescriptou via HBaseAdmin, ou directement dans l'interface HBase en utilisant la commande create.

  • Java API: Créez des tableaux en code avec HTable.Descriptou, HColonneDescriptou, et HBaseAdmin.
  • 🐚 Création du shell : La commande CREATE crée une table à partir d'un nom et d'une ou plusieurs familles de colonnes.
  • 🧬 Familles de colonnes : Chaque table nécessite au moins une famille de colonnes, définie lors de sa création.
  • 🔧 Modifier les tables : La commande ALTER ajoute des familles de colonnes, définit des VERSIONS ou modifie les attributs de portée table.
  • 🇧🇷 Cycle de vie de la table : Désactivez une table avant de la modifier ou de la supprimer, puis réactivez-la pour reprendre les écritures.
  • 🤖 Assistance IA : Les assistants IA rédigent, créent, modifient et suppriment les commandes et examinent la conception des familles de colonnes.

HBase créer une table avec Java Exemple d'API et de commande shell

Comment créer une table dans HBase avec Java API

Dans HBase, les tables peuvent être créées de deux manières : par le biais de Java L'API et l'interface de ligne de commande HBase. Cette section traite de l'API et de l'interface de ligne de commande HBase. Java L'API permet à une application de créer des tables et de charger des données par programmation dans le cadre d'une tâche plus vaste.

Avec Java API, nous pouvons créer des tables dans HBase et également charger des données dans des tables en utilisant Java programmation. Les deux éléments que nous avons mis en place ici sont :

  • Établir une connexion avec HBase via Java API.
  • L'utilisation de Eclipse pour Java Codage, débogage et tests.

Voici les étapes à suivre pour créer des tables dans HBase via Java API.

Étape 1) Créez un Java Projet en Eclipse

Dans cette étape, nous allons créer un Java projet en Eclipse pour la connexion HBase, nommée « HbaseConnection ».

Nouvelle Java La boîte de dialogue du projet ci-dessous montre la configuration du projet « HbaseConnection » :

Eclipse NOUVEAU Java Boîte de dialogue du projet créant le projet HbaseConnection avec un JavaEnvironnement SE-1.7

Si l'on observe la capture d'écran ci-dessus :

  • Indiquez le nom du projet dans ce champ. Dans notre cas, le nom du projet est « HbaseConnection ».
  • Cochez cette case pour définir l'emplacement d'enregistrement par défaut. Ici, le chemin est /home/hduser/work/HbaseConnection.
  • Cochez la case pour le Java l'environnement ici. Dans ce cas JavaSE-1.7 est le Java édition.
  • Choisissez l'emplacement où vous souhaitez enregistrer le fichier. Dans notre cas, nous avons sélectionné la deuxième option : « Créer un dossier séparé pour les sources et les fichiers de classe ».
  • Cliquez sur le bouton Terminer, ce qui crée le projet « HbaseConnection » dans Eclipse et ouvre le Eclipse page d'accueil.

Étape 2) Configurer le chemin de compilation dans Eclipse

Sur le Eclipse Sur la page d'accueil, suivez ces étapes pour ouvrir la configuration du chemin de compilation :

Right click on project -> Select Build Path -> Configure build path

La capture d'écran ci-dessous montre le menu contextuel (clic droit) permettant d'ouvrir la configuration du chemin de compilation :

Eclipse Dans le menu contextuel du projet, sélectionnez « Chemin de compilation », puis « Configurer le chemin de compilation ».

D'après la capture d'écran ci-dessus :

  • Faites un clic droit sur un projet.
  • Sélectionnez le chemin de compilation.
  • Sélectionnez Configurer le chemin de compilation.

Après avoir cliqué sur Configurer le chemin de compilation, une autre fenêtre s'ouvre, comme illustré dans la capture d'écran ci-dessous. L'onglet Bibliothèques permet d'ajouter les fichiers JAR HBase et Hadoop au projet :

Eclipse Java Onglet Bibliothèques du chemin de construction : ajout de fichiers JAR externes HBase et Hadoop

Dans cette étape, nous ajoutons les fichiers JAR HBase pertinents au système. Java projet tel qu'illustré dans la capture d'écran.

  • Fichiers JAR importants à ajouter : hbase-0.94.8.jar et hadoop-core-1.1.2.jar.
  • Rendez-vous dans l'onglet Bibliothèques.
  • Sélectionnez l'option Ajouter des fichiers JAR externes.
  • Sélectionnez les fichiers JAR importants requis.
  • Appuyez sur le bouton Terminer pour ajouter ces fichiers à la section « src » du projet. Java projet relevant des bibliothèques.

Une fois les fichiers JAR ajoutés, ils apparaissent dans le répertoire « src » du projet, comme indiqué ci-dessous :

Eclipse L'explorateur de projet affiche les fichiers JAR HBase et Hadoop ajoutés sous le code source du projet.

Tous les fichiers JAR relevant de ce projet sont désormais prêts à être utilisés avec l'écosystème Hadoop.

Étape 3) Établir la connexion HBase

Dans cette étape, la connexion HBase est établie via HBaseConnection.java. Java codage.

Sur le Eclipse menu principal, exécuter un Java Programme comme indiqué ci-dessous : Exécuter -> Exécuter en tant que -> Java Application. Le menu ci-dessous affiche le programme en cours de lancement :

Eclipse Courir comme Java Menu de l'application lançant le programme HBaseConnection

  • Sélectionnez Exécuter.
  • Sélectionnez Exécuter en tant que Java Application.
  • Ce code établit une connexion avec HBase via Java API.
  • Après l'exécution de ce code, la table « guru99 » est créée dans HBase avec deux familles de colonnes nommées « education » et « projects ». Actuellement, seul le schéma vide est créé dans HBase.

L'extrait de code ci-dessous met en évidence la HTable.Descriptou les appels addFamily qui construisent le schéma de la table :

Java code utilisant HTableDescriptou et addFamily pour définir la table guru99 avec les familles de colonnes éducation et projets

D'après la capture d'écran ci-dessus, nous effectuons les fonctions suivantes :

  • Utiliser HTableDescriptOu bien, nous pouvons créer la table « guru99 » dans HBase.
  • En utilisant la méthode addFamily, nous ajoutons « éducation » et « projets » comme familles de colonnes à la table « guru99 ».

Le code ci-dessous va établir une connexion avec HBase et créer la table « guru99 » avec deux familles de colonnes. Placez ce code dans le fichier HBaseConnection.java :

// Place this code inside Hbase connection
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
Import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HBaseConnection
{
    public static void main(String[] args) throws IOException
    {
	HBaseConfigurationhc = new HBaseConfiguration(new Configuration());
	HTableDescriptorht = new HTableDescriptor("guru99");

	ht.addFamily( new HColumnDescriptor("education"));
	ht.addFamily( new HColumnDescriptor("projects"));
	System.out.println( "connecting" );
	HBaseAdminhba = new HBaseAdmin( hc );

	System.out.println( "Creating Table" );
	hba.createTable( ht );
	System.out.println("Done......");
    }
}

Voici le code requis que vous devez insérer dans HBaseConnection.java avant d'exécuter la commande. Java .

Après son exécution, ce programme établit une connexion avec HBase et crée ensuite une table avec des noms de colonnes.

  • Le nom de la table est « guru99 ».
  • Les familles de colonnes sont « éducation » et « projets ».

Étape 4) Vérifiez la table créée dans HBase

On peut vérifier si la table « guru99 » est créée avec deux familles de colonnes dans HBase en utilisant le mode shell HBase avec la commande « list ». Cette commande fournit des informations sur toutes les tables créées dans HBase.

L'exécution de la commande list dans l'interface HBase confirme la présence de la nouvelle table, comme indiqué ci-dessous :

La commande HBase shell list a renvoyé la création de la table guru99.

  • Code vérification dans l'interface HBase en exécutant la commande « list ».
  • Si nous exécutons la commande « list », elle affiche la table créée dans HBase. Dans notre cas, nous pouvons voir que la table « guru99 » a été créée.

HBase Créer une table avec Shell

Outre l' Java L'API permet de créer une table directement depuis l'interface HBase, ce qui est la méthode la plus rapide pour configurer une table en vue de tests rapides. La syntaxe pour créer une table dans HBase via l'interface est la suivante :

Syntax: create <tablename>, <columnfamilyname>

Exemple:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

L'exemple ci-dessus explique comment créer une table dans HBase avec le nom spécifié, conformément aux règles définies pour chaque famille de colonnes. De plus, il est possible de lui transmettre des attributs de portée table.

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}

Ici, le bloc {NAME=>'Edu', VERSIONS=>…} définit une famille de colonnes nommée « Edu » et le nombre de versions de cellules qu'elle conserve. La valeur élevée de VERSIONS est donnée à titre indicatif ; en pratique, sa valeur est faible, par exemple 3 ou 5.

Lister, décrire et vérifier les tables HBase

La création d'une table n'est que la première étape de la gestion des tables dans HBase. Une fois la table « guru99 » créée, quelques commandes générales permettent de l'inspecter et de vérifier son état avant de lire, d'écrire ou de modifier des données. Vous pouvez exécuter toutes ces commandes depuis… Coque HBase.

La commande list renvoie toutes les tables utilisateur dans HBase :

hbase> list

La commande describe affiche la structure d'une table, y compris ses familles de colonnes et indique si elle est actuellement activée :

hbase> describe 'guru99'

La commande exists vérifie si une table existe, et is_enabled indique si la table peut accepter des écritures :

hbase> exists 'guru99'
hbase> is_enabled 'guru99'

Ces contrôles en lecture seule peuvent être exécutés sans risque à tout moment. Ils constituent le moyen le plus rapide de vérifier qu'une table a été créée correctement et d'examiner ses familles de colonnes avant le chargement des données.

Modifier une table HBase

Le schéma d'une table HBase n'est pas figé après sa création. La commande ALTER modifie les familles de colonnes et les attributs de portée table sans recréer la table. Selon votre version d'HBase, il peut être nécessaire de désactiver la table au préalable, puis d'exécuter la commande ALTER et de la réactiver.

Pour ajouter une nouvelle famille de colonnes à la table « guru99 » :

hbase> alter 'guru99', {NAME => 'contact'}

Pour définir le nombre de versions conservées par une famille de colonnes :

hbase> alter 'guru99', NAME => 'education', VERSIONS => 5

Pour supprimer une famille de colonnes du tableau :

hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}

Vous pouvez également modifier les attributs de portée de la table. Par exemple, vous pouvez la rendre en lecture seule ou définir la taille maximale des fichiers de région à 128 Mo :

hbase> alter 'guru99', READONLY
hbase> alter 'guru99', MAX_FILESIZE => '134217728'

Étant donné que la commande ALTER réécrit le schéma, planifiez soigneusement les modifications sur une table de production et confirmez le résultat ultérieurement avec la commande DAKEY.

Désactiver, activer et supprimer les tables HBase

Pour supprimer une table ou appliquer certaines modifications, HBase exige sa désactivation préalable. La désactivation met la table hors ligne, empêchant ainsi tout accès en lecture ou en écriture par un client et garantissant la sécurité des modifications structurelles.

Désactiver une table et vérifier son état avec is_disabled :

hbase> disable 'guru99'
hbase> is_disabled 'guru99'

Réactivez la table pour reprendre les opérations de lecture et d'écriture :

hbase> enable 'guru99'

Une table doit être désactivée avant de pouvoir être supprimée. Supprimerping supprime définitivement la table et toutes ses données, utilisez-la donc avec précaution :

hbase> disable 'guru99'
hbase> drop 'guru99'

Pour supprimer plusieurs tables simultanément, la commande drop_all supprime toutes les tables dont le nom correspond à une expression régulière. Les commandes create, alter, disable, enable et drop couvrent l'intégralité du cycle de vie d'une table. traitement des données dans les tables HBase.

FAQ

Il est recommandé de limiter le nombre de familles de colonnes, idéalement de une à trois. HBase vidage et compacte toutes les familles d'une région simultanément ; par conséquent, des familles supplémentaires répartissent les données sur plusieurs fichiers et ralentissent les opérations de lecture et d'écriture. Regroupez les colonnes apparentées au sein d'une même famille lorsque cela est possible.

Non. Lors de la création, vous définissez uniquement les familles de colonnes. Les qualificateurs de colonnes sont dynamiques et peuvent être ajoutés à n'importe quelle ligne lors de l'écriture des données. Cette conception flexible permet à chaque ligne de contenir des colonnes différentes sans avoir à modifier la table au préalable.

Utilisez la commande `truncate 'guru99'`, qui désactive la table, la supprime, puis la recrée avec les mêmes familles de colonnes. Le schéma reste intact pendant la suppression de chaque ligne. Cette méthode est plus rapide et plus propre que la suppression des lignes une par une.

L'exemple utilise HBaseAdmin et HTable.Descriptou, les deux méthodes sont obsolètes depuis HBase 1.0. Le code moderne obtient un objet Admin à partir d'une Connection via ConnectionFactory et construit le schéma avec Table.Descriptou Constructeur et Famille de colonnesDescriptouBuilder. La logique de création de table reste la même.

VERSIONS détermine le nombre de versions horodatées conservées pour chaque cellule d'une famille de colonnes. La valeur par défaut est 1. Les requêtes de versions antérieures (GET ou SCAN) les renvoient jusqu'à ce que le nombre de versions conservées soit atteint, après quoi la compaction supprime les cellules les plus anciennes.

HBase est adapté aux très grands ensembles de données épars qui nécessitent des opérations de lecture et d'écriture aléatoires rapides sur Hadoop et HDFS. Il est généralement utilisé pour les données de séries temporelles, la messagerie et l'analyse en temps réel, où les tables peuvent atteindre des milliards de lignes réparties sur de nombreux nœuds.

Les assistants de programmation IA et les grands modèles de langage rédigent des commandes de création, de modification et de suppression à partir d'invites en langage clair, expliquent la conception des familles de colonnes et signalent les opérations risquées telles que la suppression.ping un tableau. L'apprentissage automatique peut également analyser les modèles d'accès pour recommander de meilleures configurations de clés de ligne et de familles, bien qu'un ingénieur doive vérifier chaque suggestion.

Oui. Copilote GitHub peut générer des commandes shell HBase et Java Code client pour la création, la modification et la suppressionping tableaux tirés d'un court commentaire. RevVérifiez le résultat pour vous assurer que le nom de la table, les familles de colonnes et l'API d'administration actuelle sont corrects avant de l'exécuter.

Résumez cet article avec :