During my setup of my development machine I encountered some tough moments getting Hadoop and HBase up and running.
Hadoop 0.20.204 HBase 0.90.4
After the installation of Hadoop and firing it up I wanted to start HBase and feed it with some data.
In this article I refer to the following versions:
The problem
I called
$ ./start-hbase.sh
and get the following error message in the logs:
FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException
The solution
This behaviour is caused by some weird packaging of HBase which led to that HBase is using old libs of Hadoop. You can fix this easily with the following snippet:
$ cd /path/to/workingDirectory/hbase-0.90.4/lib/ $ rm hadoop-core* $ cp /path/to/workingDirectory/hadoop-0.20.204.0/hadoop-core* /path/to/workingDirectory/hadoop-0.20.204.0/lib/commons-configuration* ./ $ chmod +x hadoop-core* commons-configuration*
The first line brings you into your library folder of the current HBase installation.
Then on the second line, you are deleting all the libraries which refer to Hadoop (they all have hadoop in its file name).
On the third line you copy the correct libaries from your Hadoop installation and paste them into the current HBase library folder.
Last but not least, you are setting the appropriate execution rights to the files.
Further Reading
Official Documentation http://hbase.apache.org/book/book.html
HBase: The Definitive Guide
Acknowledgement
This refers to Lukas Schmelzeisen, who helped me a lot and saved me some hours debugging my installation. Thanks mate! Also Rene for reading beautiful log files.