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}/logsHBase起動
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が動きました。
