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を入れて作業します。
Hadoop が起動する Live-USBを作成する -- Master Node 疑似分散 編 - Guutaraの日記
で、作成したVM環境で作業します。
Hadoopの設定
構成ですが、スレーブを10ノードまで登録しておきます。
まずは、confを変更します。
分散環境のconfは、conf.destとします。
sudo cp -r /etc/hadoop-0.20/conf.empty /etc/hadoop-0.20/conf.dist update-alternatives --display hadoop-0.20-conf sudo update-alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf /etc/hadoop-0.20/conf.dist 40
起動スクリプトで、ERRがでるのが気になる場合は、以下の設定をいれます。
/etc/default/hadoop-0.20
HADOOP_PID_DIR=/tmp HADOOP_IDENT_STRING=hadoop
各種、設定ファイルを作成します。
cd /etc/hadoop-0.20/conf.dist sudo su echo hadoopmst > masters cat << EOF > slaves 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.7 192.168.0.8 192.168.0.9 192.168.0.10 192.168.0.11 EOF
core-site.xml での定義をします。
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoopmst:54310</value> </property> </configuration>
<configuration> <property> <name>dfs.replication</name> <value>2</value> <description>Default block replication</description> <property> </configuration>
mapred-site.xml での MapReduce jobtracker の定義をします。
<configuration> <property> <name>mapred.job.tracker<name> <value>hadoopmst:54311<value> <property> <configuration>
FireWallの設定
停止してしまいます。
sudo ufw status
enableなら、無効にしてしまいます。
sudo ufw disable sudo reboot
起動スクリプトの設定と改修
起動時に、Master Nodeとして、サービスを起動します。
/etc/init.d/hadoop-0.20-namenode
/etc/init.d/hadoop-0.20-jobtracker
LIVE-USBの場合、起動時に全ての情報がクリアされるため、namenodeの
スクリプトに修正をいれます。
/usr/bin/hadoop-0.20 namenode -format が、必ず、実行されるようにします。
#ADD format() { rm -rf /tmp/hadoop-hadoop su -s /bin/sh hadoop -c "/usr/bin/hadoop-0.20 namenode -format " }
case "$1" in start) echo -n "Starting Format $DESC: " format echo -n "Starting $DESC: " start
Upstartにジョブとして登録します。
sudo su -
cd /etc/init
vi hadoop-namenode.conf
description "hadoop namenode" start on filesystem stop on runlevel S post-start script /etc/init.d/hadoop-0.20-namenode start /etc/init.d/hadoop-0.20-jobtracker start end script post-stop script /etc/init.d/hadoop-0.20-namenode stop /etc/init.d/hadoop-0.20-jobtracker stop end script
いらない、ジョブを止めておきます。
vi avahi-daemon
description "mDNS/DNS-SD daemon" #start on (filesystem # and started dbus) stop on stopping dbus
起動、停止は、start,stopコマンドで行えます。
initctl list などで、全てのJOBの状態を確認できます。
ntpのインストール
時刻を同じにする為に、ntpdをインストールします。
インストールの際には、インターネットに抜けられるように
固定IPを解除するなどしてから行います。
sudo su - apt-get install ntp -y
設定ファイルを以下のようにします。
vi /etc/ntp.conf
# You do need to talk to an NTP server or two (or three). #server ntp.ubuntu.com server 127.127.1.0 fudge 127.127.1.0 stratum 1 # Clients from this (example!) subnet have unlimited access, but only if # cryptographically authenticated. restrict 192.168.0.0 mask 255.255.255.0
終わったら、リスタートさせます。
/etc/init.d/ntp restart
動作確認は、以下のコマンドなどで行います。
ntpq -p ntpdate -q localhost
動作確認
remastersysで、バックアップを作成します。
sudo su - remastersys clean remastersys backup
/home/remastersys/remastersys/custombackup.iso が、できます。
これを、使用して、Ubuntu Dicktopにて、Live-USBを作成します。
「スタートアップ・ディスクの作成」を使用する際には、
かならず、「シャットダウン時に、全ての変更を破棄する」にチェックしてください。
書き込みを可能(Persistenceを使用:casper-rwが、有効になっている)にすると、
HDFSに書き込む事ができませんでした。
UnionFSを、うまく扱えないのでしょうか。。。
USBで、ブートした後、
jps
にて、サービスが上がっていれば大丈夫です。
w3cなどでWebUIは確認できます。
w3m http://hadoopmst:50070/ w3m http://hadoopmst:50030/