MapReduceを試そうと、Hadoop環境を仮想で構築してみることにした。
ひとまず、PC上にVMware Playerをインストールすることにする。Playerでは1つしか仮想マシンを起動できないと思い込んでいたが、VMware Player自体をいくつも起動することで複数の仮想マシンを起動できるらしい。
ちなみに使用したPCのスペックは以下の通り。
- CPU : Core i7-2670QM (2.20GHz 4Core/8Thread VT:enable)
- MEM : 8GB
- HDD : 160GB SSD (Intel 320)
- Host OS : Windows 7 Ultimate (x64)
これに以下のスペックで仮想マシンを作成し、Ubuntu 11.10 (x64)をインストールしVMware Toolsをインストールしたものをベースにする。
- CPU : 1vCPU
- MEM : 1024MB
- HDD : 10GB
仮想マシンの作り方や、VMware Toolsのインストール方法はここでは記載しない。
上記で作成した仮想マシンをベースにMasterノードとSlaveノードを作成する。ちなみに参考資料はこのあたりやこのあたりの記事を見つつ、ドキュメントを読んだりとか。
まず、最初にMasterだろうがSlaveだろうが共通で必要なものを導入する。具体的にはJavaとHadoopのパッケージをインストールする。
最初にJavaをインストールする。まずは、OracleのJDKダウンロードからパッケージをダウンロードしてもいいが、openjdkを使ってみることにした。コマンドラインに以下のコマンド入力して、"openjdk-7-jdk"パッケージをインストールする。
$ sudo apt-get-install openjdk-7-jdk
次にhadoopをインストールする。参考資料に従い、ClouderaというところのCDH3というパッケージを使用することにした。"/etc/apt/source.list.d/"以下に"cloudera.list"というファイルを作成し、次の内容を保存する。
deb http://archive.cloudera.com/debian maverick-cdh3 contrib
deb-src http://archive.cloudera.com/debian maverick-cdh3 contrib
以下のコマンドを実行するとhadoopがインストールされる。
$ sudo apt-get-install curl
$ curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install hadoop-0.20
ここまでで共通設定は終わったので、次は仮想マシンをコピーしてslaveノードを作成する。
vSphereとかを使用していればクローンを作成できるが、VMware Playerにそんなこじゃれた機能はないので、手動でコピーすることにした。やり方は簡単だが若干手間がかかる。仮想マシンが保存されているフォルダをコピーし名前をSlaveノードのものに変更する。コピーしたフォルダ内のファイルでMasterノードの名前がついているものはリネームする。そして、次に挙げるファイル内のMasterノード名部分をSlaveノード名に置換する。
- <Masterノード名>.vmx
- <Masterノード名>.vmxf
- <Masterノード名>.vmdk (仮想ディスクファイルを分割にしていて<Masterノード名>-s00N.vmdkが存在する場合のみ)
これらを編集して起動すると、コピーか移動したのではとダイアログが表示されるので、コピーを選択すると、あとはいい感じに起動する。
眠くなってきたので、今日はここまで。