先日、HadoopとHBaseをインストールしていた時に
今まで見た中で一番分かりやすい解説ページがあったので紹介する。
■Hadoop/Hbase Clusterの構築
http://lunarium.info/arc/index.php/Hadoop/Hbase_Cluster%E3%81%AE%E6%A7%8B%E7%AF%89
これで簡単に「話題のクラウド化」へ!?
先日、HadoopとHBaseをインストールしていた時に
今まで見た中で一番分かりやすい解説ページがあったので紹介する。
■Hadoop/Hbase Clusterの構築
http://lunarium.info/arc/index.php/Hadoop/Hbase_Cluster%E3%81%AE%E6%A7%8B%E7%AF%89
これで簡単に「話題のクラウド化」へ!?
「Hadoop 0.15.0」や「Hbase/10Minutes」を見てなんだか簡易データベースが
使用できるそうなのでやってみた。
■今回の環境
サーバ環境は以下のような感じ。
SERVERS(計3台) :
MASTER : 192.168.0.5
SLAVE1 : 192.168.0.8
SLAVE2 : 192.168.0.10
HADOOP_HOME(全サーバ共通) : /home/hadoop/hadoop/hadoop-0.15.3/
DATA_DIR(全サーバ共通) : /home/hadoop/hadoop/filesystem/
JAVA_HOME(全サーバ共通) : /usr/java/j2sdk/
■パッケージの解凍と設置(マスターで作業)
$ tar -xvzf hadoop-0.15.3.tar.gz $ mv hadoop-0.15.3 /home/hadoop/hadoop/
■全般設定1(マスターで作業)
いつものように設定を行なう。hadoop-env.shを開いてJAVA_HOMEを設定。
$ cd /home/hadoop/hadoop/ vi conf/hadoop-env.sh
export JAVA_HOME=/usr/java/j2sdk
■全般設定2(マスターで作業)
これもいつものように設定を行なう。
今回はデータベースだけを使うので、mapredは設定しない。
$ vi conf/hadoop-site.xml <configuration> <property> <name>fs.default.name</name> <value>localhost:9000</value> </property> <property> <name>dfs.name.dir</name> <value>/home/hadoop/hadoop/filesystem/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hadoop/filesystem/dfs/data</value> </property> </configuration>
■全般設定3(マスターで作業)
スレーブサーバは2台存在するので、そのIPを入力する。
$ conf/slaves 192.168.0.8 192.168.0.10
■パッケージのコピー
それぞれのスレーブサーバにパッケージをまるごとコピー
$ cd /home/hadoop/hadoop/ $ tar -cvzf hadoop-0.15.3.tar.gz hadoop-0.15.3 $ scp hadoop-0.15.3.tar.gz hadoop@192.168.0.8:/home/hadoop/hadoop/ $ scp hadoop-0.15.3.tar.gz hadoop@192.168.0.10:/home/hadoop/hadoop/ $ ssh hadoop@192.168.0.8 $ cd /home/hadoop/hadoop $ tar -xvzf hadoop-0.15.3.tar.gz $ exit $ ssh hadoop@192.168.0.10 $ cd /home/hadoop/hadoop $ tar -xvzf hadoop-0.15.3.tar.gz $ exit
■初期化(マスターで作業)
ハードディスクをフォーマットするかのように初期化。
$ cd /home/hadoop/hadoop/hadoop-0.15.3 $ ./bin/hadoop namenode -format 08/02/08 01:09:59 INFO dfs.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = localhost/127.0.0.1 STARTUP_MSG: args = [-format] ************************************************************/ 08/02/08 01:09:59 INFO dfs.Storage: Storage directory /home/ha... 08/02/08 01:09:59 INFO dfs.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1 ************************************************************/
■Distributed File System(DFS)の起動(マスターで作業)
$ ./bin/start-dfs.sh starting namenode, logging to /home/hadoop/hadoop/hadoop-0.15.3/bi... 192.168.0.8: starting datanode, logging to /home/hadoop/hadoop/had... 192.168.0.10: starting datanode, logging to /home/hadoop/hadoop/ha... localhost: starting secondarynamenode, logging to /home/hadoop/had...
■データベースの設定(マスターで作業)
データベースは、マニアックな場所に存在する。
この下には「eclipse-plugin」とか「ec2」とかあるので、他にもソフトがあるみたい。
Amazon EC2でMapReduceとかいう訳のわからんサイトがいろいろあったのはこれか?
$ cd /home/hadoop/hadoop/hadoop-0.15.3/src/contrib/hbase/ $ vi conf/hbase-site.xml
<configuration> <property> <name>hbase.master</name> <value>localhost:60000</value> <description>The host and port that the HBase master runs at</description> </property> <property> <name>hbase.rootdir</name> <value>/hbase</value> <description>location of HBase instance in dfs</description> </property> </configuration>
■権限変更・データベース起動(マスターで作業)
HBASEの実行ファイルに権限がないので実行権限を与える。
$ chmod 755 ./bin/*
そんでデータベース起動。
$ ./bin/start-hbase.sh Safe mode is OFF starting master, logging to /home/hadoop/hadoop/hadoop-0.15.3/src/co... localhost: starting regionserver, logging to /home/hadoop/hadoop/had...
■データベースへつなげて完了(マスターで作業)
データベースに接続してみた。
PostgreSQLやMySQLのように普通にクエリを打てるっぽい。
$ ./bin/hbase shell Hbase Shell, 0.0.2 version. Copyright (c) 2007 by udanax, licensed to Apache Software Foundation. Type 'help;' for usage. Hbase>
「help;」を打てば多少説明がでる。
やっとHadoopを触ってる感じになってきてる?
ちなみにSQLについては、Hbase/HbaseShell – Hadoop Wikiを参考に。