HBase on MacOSX

| # Comments
MacOSXにHBaseをインストールした時の記録です。

利用した環境は以下の通りです。

  • 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.shhbase-site.xmlの2つです。
また、HBaseを使ってHadoopMapReduceするには、${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.jarHADDOP_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

擬似分散環境のHadoopMapReduceが動きました。

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31