これを iMac に仮想マシンとしてインストールしてやろう。
そう思って Q を使ってインストールを試したものの、どうしてもホスト PC の CD-ROM ドライブを認識してくれない。
ブータブルISOイメージを作ろうとしたがこれも失敗。
半日かかって埒が明かず、とうとう諦めてVMware fusionを導入した。
さすがにこれは何の苦労も無くインストール開始でき、現在インストール中。
なんだか悔しい。
【参考】インストール前に、「Supported Operating Systems for CDH3」で CDH3 がサポートする OS かどうか確認しておく。
- http://codezine.jp/article/detail/2485
- http://oss.nttdata.co.jp/hadoop/cdh.html
- https://ccp.cloudera.com/display/FREE4DOC
- http://wiki.apache.org/hadoop/
# yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
# apt-get install openjdk-6-jdk
# yum --nogpgcheck install http://archive.cloudera.com/redhat/cdh/cdh3-repository-1.0-1.noarch.rpm
# rpm --import http://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
[root@master]# yum install hadoop-0.20 hadoop-0.20-native \
hadoop-0.20-namenode hadoop-0.20-jobtracker
[root@slave]# yum install hadoop-0.20 hadoop-0.20-native \
hadoop-0.20-datanode hadoop-0.20-tasktracker
# wget http://archive.cloudera.com/one-click-install/squeeze/cdh3-repository_1.0_all.deb
# dpkg -i cdh3-repository_1.0_all.deb
# apt-get update
[root@master]# apt-get install hadoop-0.20 hadoop-0.20-native \
hadoop-0.20-namenode hadoop-0.20-jobtracker
[root@master]# apt-get install hadoop-0.20 hadoop-0.20-native \
hadoop-0.20-datanode hadoop-0.20-tasktracker
/usr/lib/hadoop-0.20
に設定されているので、/usr/lib/hadoop-0.20
の下に .ssh
ディレクトリを作成し、そこに鍵ペアを作る。# mkdir /usr/lib/hadoop-0.20/.ssh
# chmod 02775 /usr/lib/hadoop-0.20/.ssh
# chgrp hadoop /usr/lib/hadoop-0.20/.ssh
# ssh-keygen -t rsa -N "" -f /usr/lib/hadoop-0.20/.ssh/id_rsa
# chmod 0660 /usr/lib/hadoop-0.20/.ssh/id_rsa
# chmod 0664 /usr/lib/hadoop-0.20/.ssh/id_rsa.pub
# touch /usr/lib/hadoop-0.20/.ssh/known_hosts
# chmod 0664 /usr/lib/hadoop-0.20/.ssh/known_hosts
# chmod 0755 /usr/lib/hadoop-0.20/.ssh
/usr/lib/hadoop-0.20/.ssh
内に authorized_keys
ファイルを作成して書き込み、互いに hdfs アカウントでパスワード無しにログインできることを確認する。[root@master]# su - hdfs
[hdfs@master]$ ssh slave
[hdfs@slave]$ ssh master
[hdfs@master]$ exit
[hdfs@slave]$ exit
[hdfs@master]$ exit
conf.cluster
とした) にコピーして設定していく。alternatives
コマンドを使って切り替える。# cp -dpR /etc/hadoop/conf.empty /etc/hadoop/conf.cluster
# alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf \
/etc/hadoop-0.20/conf.cluster 50
# alternatives --display hadoop-0.20-conf
【Debian系】
# cp -dpR /etc/hadoop/conf.empty /etc/hadoop/conf.cluster
# update-alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf \
/etc/hadoop-0.20/conf.cluster 50
# update-alternatives --display hadoop-0.20-conf
マスターノード、スレーブノードの両方の /etc/hadoop/conf.cluster
内の設定ファイルを、たとえば以下のように書き換える:
設定ファイル: core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
</configuration>
設定ファイル: hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
</configuration>
設定ファイル: mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/var/hadoop/mapred</value>
</property>
</configuration>
設定ファイル: masters
master
設定ファイル: slaves
slave
環境変数設定ファイル: hadoop-env.sh
# 【RedHat系】
export JAVA_HOME=/usr/lib/jvm/java
# 【Debian系】
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
対応するディレクトリを作成する。
# mkdir -p /var/hadoop/tmp \
/var/hadoop/dfs/name \
/var/hadoop/dfs/data \
/var/hadoop/mapred
# chown hdfs:hadoop /var/hadoop/tmp \
/var/hadoop/dfs/name \
/var/hadoop/dfs/data
# chown mapred:hadoop /var/hadoop/mapred
# chmod 0777 /var/hadoop/tmp
# chmod 0700 /var/hadoop/dfs/name
# chmod 0755 /var/hadoop/dfs/data \
/var/hadoop/mapred
5. ポートの開放
Hadoop がデフォルトで使用するポート番号が「Hadoop Default Ports Quick Reference」にあるので、必要に応じてルーターやファイアウォール等の設定を変更する。
6. NameNode / DataNode の起動
マスターノードで、NameNode をフォーマットする。
[root@master]# su - hdfs
[hdfs@master]$ hadoop namenode -format
[hdfs@master]$ exit
ここで以下のようなエラーが出る場合は、環境変数 JAVA_HOME が正しく設定されていない可能性がある:
+======================================================================+
| Error: JAVA_HOME is not set and Java could not be found |
+----------------------------------------------------------------------+
| Please download the latest Sun JDK from the Sun Java web site |
| > http://java.sun.com/javase/downloads/ < |
| |
| Hadoop requires Java 1.6 or later. |
| NOTE: This script will find Sun Java whether you install using the |
| binary or the RPM based installer. |
+======================================================================+
マスターノードの NameNode、スレーブノードの DataNode を起動する。
マスターノード:
[root@master]# service hadoop-0.20-namenode start
スレーブノード:
[root@slave]# service hadoop-0.20-datanode start
NameNode、DataNode が稼働しているかどうかは、ブラウザーで以下の URL にアクセスすることで確認できる。
http://master:50070/
"Live Nodes" の数値が稼働している DataNode の数。
7. JobTracker / TaskTracker の起動
マスターノードの HDFS 上に /mapred/system
ディレクトリを作成する。
[root@master]# su - hdfs
[hdfs@master]$ hadoop fs -mkdir /mapred/system
[hdfs@master]$ hadoop fs -chown -R mapred:supergroup /
[hdfs@master]$ hadoop fs -chmod -R 0700 /mapred
[hdfs@master]$ exit
マスターノードの JobTracker、スレーブノードの TaskTracker を起動する。
マスターノード:
[root@master]# service hadoop-0.20-jobtracker start
スレーブノード:
[root@slave]# service hadoop-0.20-tasktracker start
JobTracker、TaskTracker が稼働しているかどうかは、ブラウザーで以下の URL にアクセスすることで確認できる。
http://master:50030/
Cluster Summary の "Nodes" の数値が稼働している TaskTracker の数。
8. サンプルコードの実行
パッケージにはサンプルコードが添えられているので試しに実行してみる。
[root@master]# su - mapred
[mapred@master]$ cd /usr/lib/hadoop
[mapred@master]$ hadoop jar hadoop-examples.jar pi 1 10
【変更履歴】
2013-01-22 記述全体を手直し
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |