Hadoop が起動する Live-USBを作成する -- Master Node 疑似分散 編

USBで、ブートするだけで、Hadoopの分散環境がテストできる
Live-USBを作成してみます。

今回は、マスターノードとなるUSBの基礎の部分に、Hadoop(CDH3)を
インストールし疑似分散環境の設定で、Live-USBを動かします。

Serverで、USBを使う場合ですが、接続後に、

dmesg | tail

すればデバイス名(sdb1など)が、わかるのでマウントします。

作成に使用する環境など

Mac OSX 10.6 のMacBook上に、VMWare Fusionを入れて作業します。

http://d.hatena.ne.jp/Guutara/20100826/p1
で、作成したVM環境で作業します。

JDKのインストール

インストールをする前に、固定IPの設定を解除しておきます。
DHCPサーバも止めておきます。インターネットに出れないと思いますので。。

/etc/network/interfacesの変更をします。
/etc/init.d/dhcpserver を止めます。
/etc/init.d/networking 止めて、スタートします。

準備ができたら、JDKのインストールに移ります。

/etc/apt/sources.listを変更します。
以下のように、コメントを外します。

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner

インストールします。

sudo apt-get update
sudo apt-get install sun-java6-jdk

Hadoop (CDH3)のインストール

以下のリンクを参考に、インストールします。

Cloudera - Sign In

/etc/apt/sources.list に以下を追加します。

deb http://archive.cloudera.com/debian lucid-cdh3 contrib
deb-src http://archive.cloudera.com/debian lucid-cdh3 contrib

インストールします。

sudo apt-get install -y curl
curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add -
sudo apt-get update
sudo apt-cache search hadoop
sudo apt-get install hadoop

疑似分散環境を設定する

1台で、試せる疑似分散環境の設定をインストールします。

sudo apt-get install hadoop-0.20-conf-pseudo

動作確認

/etc/network/interface の設定を固定IPに戻します。

その後、remastersysで、バックアップを作成します。

sudo su -
remastersys clean
remastersys backup

/home/remastersys/remastersys/custombackup.iso が、できます。
これを、使用して、Ubuntu Dicktopにて、Live-USBを作成します。

「スタートアップ・ディスクの作成」を使用する際には、
かならず、「シャットダウン時に、全ての変更を破棄する」にチェックしてください。

書き込みを可能(Persistenceを使用:casper-rwが、有効になっている)にすると、
HDFSに書き込む事ができませんでした。
UnionFSを、うまく扱えないのでしょうか。。。

USBで、ブートした後、

sudo -u hadoop hadoop-0.20 namenode -format
/etc/init.d/hadoop-0.20-namenode start
/etc/init.d/hadoop-0.20-jobtracker start
/etc/init.d/hadoop-0.20-datanode start
/etc/init.d/hadoop-0.20-tasktracker start

ERRORがでますが、

jps

にて、サービスが上がっていれば大丈夫です。

あとは、適当に、動かして確認します。

hadoop-0.20 fs -mkdir input
hadoop-0.20 fs -ls 
hadoop-0.20 fs -put /var/log/messages input
hadoop-0.20 fs -ls input
hadoop-0.20 fs -cat input/messages
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-0.202+30-examples.jar pi 2 2000
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-0.202+30-examples.jar wordcount input output
hadoop-0.20 fs -ls output
hadoop-0.20 fs -cat output/part-r-00000