HBase est un système de gestion de base de données non relationnelle orienté colonnes qui fonctionne sur HDFS (Hadoop Distributed File System). HBase fournit un moyen tolérant aux pannes de stocker des ensembles de données éparses, ce qui est courant dans de nombreux cas d'utilisation Big Data. Il est bien adapté au traitement des données en temps réel ou à l'accès aléatoire en lecture/écriture à de grands volumes de données.
Contrairement aux systèmes de bases de données relationnelles, HBase ne prend pas en charge les langages de requête structuré comme SQL ; en fait, HBase n'est pas du tout un magasin de données relationnelles. Les applications HBase sont écrites en Java™ tout comme une application Apache MapReduce typique. HBase prend en charge l'écriture d'applications dans Apache Avro, REST et Thrift.
Un système HBase est conçu pour se mettre à l'échelle façon linéaire. Il comprend un ensemble de tables standard avec des lignes et des colonnes, comme une base de données traditionnelle. Chaque table doit avoir un élément défini comme une clé primaire, et toutes les tentatives d'accès aux tables HBase doivent utiliser cette clé primaire.
Avro, en tant que composant, prend en charge un riche ensemble de types de données primitives, notamment les données numériques, binaires et les chaînes de caractères, ainsi qu'un certain nombre de types complexes, notamment les tableaux, les mappes, les énumérations et les enregistrements. Un ordre de tri peut être également défini pour les données.
HBase s'appuie sur ZooKeeper pour la coordination haute performance. ZooKeeper est intégré à HBase, mais si vous exécutez un cluster de production, il est suggéré d'utiliser un cluster ZooKeeper dédié qui est intégré à votre cluster HBase.
HBase fonctionne bien avec Hive, un moteur de requête pour le traitement par lots des
données Big Data, pour permettre des applications de données volumineuses tolérantes aux pannes.