Apache HBase, risoluzione problema PleaseHoldException

Apache HBasApache HBasee è un database open-source, distribuito, non relazionale e scritto in Java, nato come parte del progetto Apache Hadoop per poter implementare caratteristiche tipiche di BigTable di Google.
Recentemente, durante il corso di Sistemi Intelligenti per Internet della laurea magistrale in Ingegneria Informatica di Roma Tre, ho avuto occasione di installarlo sul mio computer con su Ubuntu 14.04.
Dopo aver scaricato il pacchetto dal sito ufficiale, modificato il file di configurazione hbase-site.xml (settando il path per la proprietà hbase.rootdir in modo da dare ad HBase una directory dove poter scrivere), lancio da terminale un’istanza di HBase con il comando:

./bin/start-hbase.sh

Tutto bene, a quanto pare…
Lancio così la shell con il comando:

./bin/hbase shell

Proviamo il primo test, una creazione di una tabella con due famiglie di colonne; eseguiamo quindi:

create ‘blogposts’, ‘post’, ‘image’

Qui arriva l’inatteso inghippo:

ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

Dopo aver:

– atteso (il mio computer non è una scheggia…)
– ricontrollato tutte le impostazioni
– verificato con altri colleghi a cui funzionava tutto le loro impostazioni
– chiesto al professore

rimaneva solo una cosa, chiedere a Google.
Con qualche ricerca qua e là, si è trovata la soluzione al mio caso: il tutto sta nel fatto che HBase si aspetta che l’indirizzo 127.0.0.1 sia mappato al localhost e al nome della macchina; controllando il file di sistema /etc/hosts ho notato invece era mappato sì al localhost, ma il nome della macchina era mappato all’indirizzo 127.0.1.1.
Sistemato il file di configurazione, ho riprovato a lanciare HBase e aprire la shell: stavolta il test va a buon fine, prima tabella creata con successo!

Questo dovrebbe risolvere il problema.

The following two tabs change content below.
Un giovane universitario che col passare degli anni rimane universitario e diventa meno giovane.