MacOSXにHBaseをインストールした時の記録です。
利用した環境は以下の通りです。
Hadoopは、インストールしてあるものとします。
また、参考にしたページは次のページです。
このページはHadoopをインストールする時にもお世話になりました。
利用した環境は以下の通りです。
- MacOSX Snow Leopard
- Hadoop 0.20.2
- HBase 0.20.5
Hadoopは、インストールしてあるものとします。
また、参考にしたページは次のページです。
このページはHadoopをインストールする時にもお世話になりました。
ダウンロード
ダウンロードページから、適当なミラーサイトを選んでダウンロードします。ただし、2010/06/29現在、ミラーが行き渡っていないサーバーがあるようなので、その場合には別のミラーからダウンロードして下さい。
/usr/local に展開します。
$ pwd
/usr/local
$ sudo tar zxvf /path/to/hbase-0.20.5.tar.gz
$ sudo ln -s hbase-0.20.5 hbase
以降、このインストールディレクトリを
${HBASE_HOME}
と記述します。また
Hadoop
がインストールされているディレクトリを${HADOOP_HOME}
と記述します。HBase設定
設定するファイルは${HBASE_HOME}/conf
にある、hbase-env.sh
、hbase-site.xml
の2つです。また、
HBase
を使ってHadoop
でMapReduce
するには、${HADOOP_HOME}/conf/hadoop-env.sh
も設定する必要があります。hbase-env.sh
JAVA_HOME
を設定します。export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
その他はデフォルトのままにしておきます。
hbase-site.xml
HBase
が使うHDFS
のルートディレクトリを指定します。<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
</configuration>
hadoop-env.sh
HBase
と連携してMapReduce
する際にはHadoop
からHBase
のライブラリを参照する必要がありますので、HADOOP_CLASSPATH
を設定します。export HADOOP_CLASSPATH=/opt/local/share/scala-2.8/lib/scala-library.jar:/usr/local/hbase/conf:/usr/local/hbase/hbase-0.20.5.jar:/usr/local/hbase/lib/zookeeper-3.2.2.jar
後述の
MapReduce
の動作確認を行う場合には、hbase-0.20.5-test.jar
もHADDOP_CLASSPATH
に追加しておいてください。ログディレクトリ
${HBASE_HOME}/logs
がない場合には作成しておきます。$ sudo mkdir ${HBASE_HOME}/logs
$ sudo chown hadoop:hadoop ${HBASE_HOME}/logs
HBase起動
hadoop
ユーザーで、Hadoop
およびHBase
を起動します。$ sudo su - hadoop
$ ${HADOOP_HOME}/bin/start-all.sh
$ ${HBASE_HOME}/bin/start-hbase.sh
これで無事に起動しました。
動作確認
HBase Shell
から、いくつかコマンドを実行してみます。$ ${HBASE_HOME}/bin/hbase shell
hbase> # Type "help" to see shell help screen
hbase> help
hbase> # To create a table named "mylittletable" with a column family of "mylittlecolumnfamily", type
hbase> create "mylittletable", "mylittlecolumnfamily"
hbase> # To see the schema for you just created "mylittletable" table and its single "mylittlecolumnfamily", type
hbase> describe "mylittletable"
hbase> # To add a row whose id is "myrow", to the column "mylittlecolumnfamily:x" with a value of 'v', do
hbase> put "mylittletable", "myrow", "mylittlecolumnfamily:x", "v"
hbase> # To get the cell just added, do
hbase> get "mylittletable", "myrow"
hbase> # To scan you new table, do
hbase> scan "mylittletable"
MapReduceの動作確認のために
PerformanceEvaluation
を実行してみます。※ 重いプログラムなので気をつけてください。
$ ${HADOOP_HOME}/bin/hadoop org.apache.hadoop.hbase.PerformanceEvaluation sequentialWrite 4
擬似分散環境の
Hadoop
でMapReduce
が動きました。