In Teil 3 geht es um HBase, die zu Hadoop passende Datenbank, und wie sie in HDFS einzieht. Die aktuelle Version ist 0.94.3 und die wird so wie die Java und Hadoop installiert:

[manuel@dexter ~]$ wget http://apache.openmirror.de/hbase/hbase-0.94.3/hbase-0.94.3.tar.gz
[manuel@dexter ~]$ tar xfz hbase-0.94.3.tar.gz
[manuel@dexter ~]$ sudo mv hbase-0.94.3/ /opt/
[manuel@dexter ~]$ sudo mkdir /etc/hbase
[manuel@dexter ~]$ sudo cp /opt/hbase-0.94.3/conf/ /etc/hbase/

Der Ordner mit den Konfigurationsdateien wird in /etc/profile.d/hbase.sh bekannt gegeben:

#!/bin/sh
HBASE_CONF_DIR=/etc/hbase/conf
export HBASE_CONF_DIR

Und auch HBase will wissen, wo Java liegt; deshalb kommt in /etc/hbase/conf/hbase-env.sh

export JAVA_HOME=/opt/jdk1.7.0_10

Damit HBase die Daten ordentlich in HDFS speichert, muss (1) als root-Directory die URL zum HDFS angegeben werden, (2) der Cluster auf distributed gestellt werden und (3) der Server als ZooKeper bekannt gemacht werden.

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
  </property>
</configuration>

ZooKeeper wird mit HBase ausgeliefert und ist ein Service, der die Regionserver (Clients) und den Master “verbindet”. (Die Suspicious Quotation Marks kann man ignorieren, oder sich mehr mit ZooKeeper befassen, das führt aber zu weit vom Thema Hadoop weg.)HBase will jetzt Daten in HDFS speichern, also sollte das auch laufen, danach kann HBase gestartet werden und jps zeigt was jetzt alles läuft:

[manuel@dexter ~]$ /opt/hadoop-1.0.4/bin/start-all.sh 
[manuel@dexter ~]$ /opt/hbase-0.94.3/bin/start-hbase.sh 
[manuel@dexter ~]$ jps
3420 HRegionServer
3265 HQuorumPeer
3330 HMaster
3648 Jps
2845 JobTracker
2652 DataNode
2946 TaskTracker
2546 NameNode
2759 SecondaryNameNode

Zum Rumspielen kann die HBase-Shell verwendet werden:

[manuel@dexter ~]$ /opt/hbase-0.94.3/bin/hbase
hbase(main):001:0> create 'test', 'cf'
hbase(main):002:0> put 'test', 'row1', 'cf:a', 'value1'
hbase(main):003:0> exit

Damit wird eine Tabelle ‘test’ erstellt, die im HDFS lebt. Davon kann man sich überzeugen:

[manuel@dexter ~]$ /opt/hadoop-1.0.4/bin/hadoop fs -ls /hbase