Hadoop が起動する Live-USBを作成する -- Master Node 基礎準備 編
USBで、ブートするだけで、Hadoopの分散環境がテストできる
Live-USBを作成してみます。
まずは、マスターノードとなるUSBの基礎の部分を作成します。
Hadoopのインストールは、まだ、行いません。
固定IP
DHCPサーバ
hosts
などの設定を有効にして、Live-USBが出来上がるまでです。
Serverで、USBを使う場合ですが、接続後に、
dmesg | tail
すればデバイス名(sdb1など)が、わかるのでマウントします。
作成に使用する環境など
Mac OSX 10.6 のMacBook上に、VMWare Fusionを入れて作業します。
VMWare への、Ubuntu Server 10.04のインストール
簡易インストールは、使用せずに、インストールしました。
キーボードは
Generic 101-Key PC
Japan
Japan
を、選択。
ユーザは、hadoop/hadoopです。
ホスト名は、hadoopmstです。
OpenSSHサーバのパッケージだけ追加します。
インストールが終わったら、ロケールの変更をします。
sudo su -
update-locale LANG=
あとは、aptで最新の状況に。
sudo apt-get update
sudo apt-get -y upgrade
Remastersysのインストール
いつものように。
/etc/apt/source.listに以下を追加して、インストールします。
deb http://www.geekconnection.org/remastersys/repository karmic/
sshdの設定
あくまで、プライベートな環境で使うので、設定はとくに弄りません。
もし、
sudo sshd -t
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
がでたら、作成しておきます。
sudo /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N sudo /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N sudo /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N
DHCP3 Serverのインストールと設定
Slaveノードは、マスターにあるDHCPから、IPを貰う事にします。
まずは、インストールします。
sudo apt-get install dhcp3-server
インストール後に、サービスの起動には失敗しますが、問題はありません。
次に、設定をします。
マスターサーバは、192.168.0.1の固定アドレスを持つ事にします。
スレーブは、2から、254の間とします。
/etc/dhcp3/dhcpd.conf
# # Sample configuration file for ISC dhcpd for Debian # # Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as # configuration file instead of this file. # # $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ # ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.254; option routers 192.168.0.1; }
固定アドレスにして、サービスの起動テストをします。
/etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #iface eth0 inet dhcp iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.1
rng-toolsのインストール
namenode,datanodeなどが立ち上がる際に、jettyが、とまってしまう原因が、
JVMがrandom number を作成する際に使用するentropy が足りない事dだと判明しました。
sudo su -
update-alternatives --list java
Javaの場所を確認して、
less /usr/lib/jvm/java-6-sun/jre/lib/security/java.security
を確認しましたが、
securerandom.source=file:/dev/urandom になっています。
これならば、待たないはずですが、実際には、待ってしまいます。
なので、rngdを導入する事にしました。
apt-get install rng-tools -y
vi /etc/default/rng-tools
# Configuration for the rng-tools initscript # $Id: rng-tools.default,v 1.1.2.5 2008-06-10 19:51:37 hmh Exp $ # This is a POSIX shell fragment # Set to the input source for random data, leave undefined # for the initscript to attempt auto-detection. Set to /dev/null # for the viapadlock and tpm drivers. #HRNGDEVICE=/dev/hwrng #HRNGDEVICE=/dev/null HRNGDEVICE=/dev/urandom
Upstartにジョブを設定します。
vi /etc/init/rng-tools.conf
description "rng-tools" start on filesystem stop on runlevel S post-start script /etc/init.d/rng-tools start end script post-stop script /etc/init.d/rng-tools stop end script
Casperの改造
AutoLoginを無効にします。
sudo su -
cd /usr/share/initramfs-tools/scripts/casper-bottom/
vi 25configure_init
以下の行を
23:# Arrange for shells on virtual consoles, rather than login prompts 24: 25:if [ -n "$USERNAME" ]; then
以下のように変更します。
25:if [ -n "" ]; then
IPの名前解決を、hostsで行う為、hostsを作成するスクリプトを改造します。
remastersysのbackupオプションでは、1000番のユーザを/etc/casper.confの、
HOSTに入れてしまい、HOST名を変えるのが面倒なので、決めうちにしてます。
cd /usr/share/initramfs-tools/scripts/casper-bottom/
vi 18hostname
#! /bin/sh PREREQ="" DESCRIPTION="Setting hostname..." prereqs() { echo "$PREREQ" } case $1 in # get pre-requisites prereqs) prereqs exit 0 ;; esac . /scripts/casper-functions log_begin_msg "$DESCRIPTION" HOST="hadoopmst" echo "$HOST" > /root/etc/hostname echo "127.0.0.1 localhost" > /root/etc/hosts echo "192.168.0.1 hadoopmst" >> /root/etc/hosts count=2 prefix="192.168.0." while [ $count -le 254 ] do echo "$prefix$count $prefix$count" >> /root/etc/hosts count=`expr $count + 1 ` done cat >> /root/etc/hosts <<EOF # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts EOF hostname "$HOST" log_end_msg
Remastersysの設定と改造
isolinuxのメニューを変更します。
メディアにあるinterfaceの内容(固定IP)で立ち上げる IP=frommedia、
ram起動の toram をつけ加えます。
cd /etc/remastersys/ cd isolinux sudo vi isolinux.cfg.vesamenu
label live menu label live - Master Node (Static IP) kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash ip=frommedia --
sshdを使えるようにする為に、以下の部分から、削除をコメントにします。
sudo vi /usr/bin/remastersys
rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key.pub rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key.pub
コメントにする。
# comment out #rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key #rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key.pub #rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key #rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key.pub # end