Windows 7 + CygwinでHadoop(擬似分散モード)を動かす

Windows 7 + CygwinでHadoop(擬似分散モード)を動かすまでの簡単な手順。Hadoop本にはCygwinでの設定手順が書いてない。。。

Hadoopの設定

Hadoop/confのcore-site.xml、hdfs-site.xml、mapred-site.xmlを以下のように設定する。

core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost/</value>
  </property>
</configuration>

hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:8021</value>
  </property>
</configuration>

CYGWIN sshd(Windowsサービス)をインストール

Cygwinのopensshパッケージをインストール済みなことを確認したうえで、管理者権限でCygwinを起動し、以下のコマンドを実行。

ssh-host-config -y

途中でサービス起動アカウントのパスワードが聞かれるので、任意のパスワードを入力する。インストールが終わったらCYGWIN sshdサービスを起動しておく。
ここまでの操作が完了した時点で、CYGWIN sshdサービス起動用に「Privileged server」というAdministratorsグループなアカウントが作成される。このユーザのパスワードは先ほどの操作で入力したパスワードとなる。

パスフレーズなしでsshにログインできるようにする

Cygwinで以下のコマンドを実行。(管理者権限である必要はない)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

ここまでの設定が正しく出来ていれば、以下のコマンドでsshログインが可能なはず。

ssh localhost

擬似分散モードで起動・終了

起動する場合は以下のコマンドを実行する。

start-dfs.sh
start-mapred.sh

起動時にJAVA_HOMEがないと怒られる場合、.bashrcに以下のようなexportを追加。

export JAVA_HOME='/cygdrive/c/Progra~1/Java/jdk1.6.0_20/'

終了時は以下のコマンドを実行する。

stop-dfs.sh
stop-mapred.sh