CLOVER🍀

That was when it all began.

擬似分散環境のHDFS上で、HBaseを使用する

前回、Hadoopをインストールしました。あとは、これでHBaseのデータをHDFS上に保存するようにしてみたいと思います。

ZooKeeperも入れた方がいいのかなぁ?と思ったのですが、擬似分散環境ではZooKeeperは使われないようなので、対象外に。う〜ん、ちょっと残念。

それでは、HBaseの設定をします。
$HBASE_HOME/conf/hbase-site.xml

<configuration>
</configuration>

最初は、このように中身がほぼ空だった設定ファイルを

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:8020/hbase</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <property>1</property>
  </property>
</configuration>

と修正。

それでは、Hadoopを起動します。

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start namenode
$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start datanode
$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh start secondarynamenode
$ $HADOOP_PREFIX/sbin/yarn-daemon.sh start resourcemanager
$ $HADOOP_PREFIX/sbin/yarn-daemon.sh start nodemanager
$ $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh start historyserver

YARNは要らない気がしますが…。

続いて、HBaseを起動。

$ start-hbase.sh

起動したら、HBase Shellを起動してみましょう。

$ hbase shell
2013-09-06 23:58:17,356 WARN  [main] conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.95.2-hadoop2, rUnknown, Thu Aug 15 13:22:42 PDT 2013

テーブルを作成してみます。

hbase(main):001:0> create 'test', 'cf'

それから、データをいくつか登録。

hbase(main):002:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.1030 seconds

hbase(main):003:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0340 seconds

hbase(main):004:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0350 seconds

HDFSを確認してみます。

$ hadoop fs -ls /hbase
13/09/07 00:01:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 6 items
drwxr-xr-x   - xxxxx supergroup          0 2013-09-06 23:57 /hbase/.tmp
drwxr-xr-x   - xxxxx supergroup          0 2013-09-06 23:57 /hbase/WALs
drwxr-xr-x   - xxxxx supergroup          0 2013-09-06 23:57 /hbase/data
-rw-r--r--   3 xxxxx supergroup         42 2013-09-06 23:57 /hbase/hbase.id
-rw-r--r--   3 xxxxx supergroup          7 2013-09-06 23:57 /hbase/hbase.version
drwxr-xr-x   - xxxxx supergroup          0 2013-09-06 23:57 /hbase/oldWALs

無事、HDFSにデータが入りました。