Skip to main content

Sortie de HBase 0.92

Après 4 "release candidate" et plus d'un an de développement la version 0.92.0 de HBase succède à la branche 0.90.x.Malgré le faible écart entre les deux numéros de version le travail accompli pour aboutir à cette version a été très important.

Les nouveautés majeures :

Implémentation des co-processeurs

Les coprocesseurs permettent de réaliser des traitements directement au sein des JVM des serveurs qui gèrent les données.
Deux types de coprocesseurs sont disponibles :
  • Les “observers” qui permettent le déclenchement d’actions sur des évènements affectant les données ou les tables. Les observers peuvent être chainés, executés par ordre de priorité et poser un veto sur une opération.
  • Les “endpoints” quant à eux permettent d’étendre les services RPC par des procédures personnalisées. Livrés avec cette version on trouvera ainsi des services d'agrégation permettant, entre autres, de déterminer les valeurs minimales ou maximales des données ou encore de réaliser des opérations arithmétiques de base.

HFile V2

HFile désigne le format des fichiers utilisé par HBase pour stocker les données sur le système de fichier. Cette contribution est le fruit du travail des ingénieurs de Facebook et permet d’améliorer l’utilisation de la mémoire faite pour les écrire et y accéder. Il permet d’accélérer l’ouverture des fichiers et donc de diminuer le temps d’indisponibilité des données qui y sont stockées lors du démarrage du cluster ou suite à la défaillance d’un noeud. (cette optimisation sera d'autant plus notable si vous utilisez les Bloom Filters)
A noter qu'aucune migration n'est nécessaire, HBase 0.92 sait lire les fichier V1 et les convertira en V2 à la première "compaction".

Distributed log splitting

Lors d’un redémarrage du cluster ou en cas de défaillance d’un nœud la prise en charge des données en instance d’intégration est distribuée sur l’ensemble des nœuds du cluster encore disponibles, la coordination étant assurée par Zookeeper. Cette action dans les versions précédentes était principalement effectuée par un seul serveur.

Intégration de la sécurité

Cette version apporte des mécanismes de sécurité basés sur ceux offert par Hadoop (authentification via Kerberos, isolation des données sur HDFS....) On trouve donc des fonctionnalités telles que :
  • Des appels RPC clients sécurisés
  • La mise oeuvre de listes de contrôle d’accès (ACL) sur les tables et les colonnes
  • Une connexion sécurisé au quorum ZooKeeper
Correctifs et optimisations diverses

Parmi les améliorations et les nombreux correctifs on notera aussi l’activation par défaut du mécanisme de gestion de la mémoire MemStore-LAB, ce dernier permet de réduire la fragmentation mémoire de la JVM et donc de diminuer le travail du garbage collector.
L’IHM permet quant à elle de visualiser en plus des informations habituelles (statistiques des noeuds, distribution des données...) les opérations en cours sur le cluster (split, compaction....)



Voir la liste des changements

Comments

Popular posts from this blog

Orientée colonnes ?

Les bases NoSQL sont arrivées avec leur cortège de nouveautés et pour certaines d'entre elles une notion héritée de BigTable : celle de base de donnée orientée colonne. Cependant faire le lien entre l'article de Wikipedia et comprendre ce que permet réellement un base de donnée comme HBase n'est pas une chose évidente. En effet le simple fait de définir cette notion ne suffit pas toujours a bien comprendre quels sont les principes de conception du monde SQL qui peuvent être oubliés et ceux qui doivent être appris. Colonne or not colonne ? Prenons un modèle très simple de donnée et essayons de le transposer dans un modèle "orienté colonne": Comme on peut le voir on est passé d'un modèle à 2 dimensions (ligne x colonne) vers un modèle où une valeur est accédée au travers de 2  coordonnées qui sont ici (ligne, colonne) Cette notion de coordonnées est  importante  (c'est pour ça que je la met en gras 2 fois de suite) si l'on veut c

Row Count : HBase Aggregation example

With the coprocessors HBase 0.92 introduces a new way to process data directly on a region server. As a user this is definitively a very exciting feature : now you can easily define your own distributed data services. This post is not intended to help you how to define them (i highly recommend you to watch this presentation if you want to do so) but to quickly presents the new aggregation service shipped with HBase 0.92 that is built upon the endpoint coprocessor framework. 1. Enable AggregationClient coprocessor You have two choices : You can enable aggregation coprocessor on all your tables by adding the following lines to hbase-site.xml : <property> <name>hbase.coprocessor.user.region.classes</name> <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value> </property> or ...you can enable coprocessor only on a table throught the HBase shell : 1. disable the table hbase> disable ' mytable ' 2.

HBase + Subversion + Eclipse + Windows

HBase + Subversion + Eclipse + Windows (it should be easy to adapt for Linux) Update : please note that since HBase-4336 / HBase 0.96 the source tree is split in more than one Maven module this post is no more relevant, i have created a new post on this subject : http://michaelmorello.blogspot.fr/2012/06/hbase-096-eclipse-maven.html This is a simple setup in order to play with the source code of HBase under Microsoft Windows. Since HBase use some Unix specific commands like chmod the only requirements here are  Cygwin and a working Maven 3 environment. (It is obvious that you need Java and Eclipse , but you DON'T need anything else like the Eclipse Maven plugin or any SSH configuration) 1. Checkout the source code The first step is to check out the source code from the Subversion repository. I did it under my cygwin home repository. In this example i want to play with the 0.90 branch : svn co http://svn.apache.org/repos/asf/hbase/branches/0.90/ hbase-0.90