mercredi 28 octobre 2009

une soirée de geek

Une petite soirée de geek comme je les aime. Il est devenu de plus en rare de trouver de la motivation pour replonger dans le code le soir. Heureusement, devenu architecte réseau, je n'écris plus que dans un logiciel de traitement de texte. Adieu perl, shell, ruby, SQL et JavaScript entre 9 et 7 :p

Ce soir, donc, j'ai eu une bride de motivation pour installer HBase sur un Mac. Le projet vise à héberger des bases gigantesques réparties sur un parc de machine. Écris en java, çà plante bien évidemment. Un petit inventaire des quelques problèmes que j'ai pu rencontrer.

  • java 1.5 au lieu de 1.6 requis. Solution : CTRL + espace, recherche de "java preferences". Je peux alors drag'n droper la version 1.6 au dessus de la pile. On quitte et Ô miracle, java --version donne la 1.6
  • Démarrage de hbase, une tonne de pages d'erreurs. Des choses bien cryptiques du type "bad version in .class file". Dieu que j'aime le Java. Solution : l'outil de "java preferences" ne modifie pas le lien symbolique "CurrentJDK", il faut donc le faire pointer à la main vers le répertoire "1.6".
HBase boot. Génial. Enfin, il écrit maintenant les erreurs dans un fichier de log. Je vous passe les détails du type : "vim ne fait pas le folding en xml", "pas moyen de copier le texte du terminal sur un select" et le popup "batterie faible, retrouvez le chargeur dans l'appartement loft".

Bref.

La doc de HBase indique :
  1. définir $HBASE_HOME
  2. éditer conf/hbase-env.sh pour définir JAVA_HOME ( /Library/Java/Home sur Mac).
  3. lancer bin/start-hbase.sh
Heureusement, le canal IRC #hbase m'a permis de me sortir de ce mauvais pas. Les utilisateurs esammer et jdcryans m'ont assistés et on pris le temps de bien comprendre ma problématique.

Au final, je l'ai lancé à la main :

$ ./hbase-daemon.sh start zookeeper
starting zookeeper, logging to /Users/me/stuff/hbase/bin/../logs/hbase-me-zookeeper-host.out
$ ./hbase-daemon.sh start master
starting master, logging to /Users/me/stuff/hbase/bin/../logs/hbase-me-master-host.out
$ ./bin/hbase shell
HBase Shell; enter 'help' for list of supported commands.
Version: 0.20.1, r822817, Wed Oct 7 11:10:02 PDT 2009
hbase(main):001:0> status
1 servers, 0 dead, 2.0000 average load
hbase(main):002:0>

Et voilà !


L'erreur est que le script start-hbase utilise ssh pour lancer des instances à droite à gauche. Sur ma machine je n'ai pas de démon ssh et le script ne peut donc démarrer l'instance ZooKeeper. De là, tout s'écroule et le manque de traitement d'erreur n'a pas aidé à débugger le problème.

MàJ le 30/10/2009 : quelques typos et µ précisions.


Aucun commentaire: