■各バージョン
- CentOS 7 x86_64 (2014_09_29) EBS HVM
- hadoop-2.6.0
■準備
EC2
AMIは今回、CentOS 7 を選択しました。
Instance Type は、m3.large にしましたが、大きいほうが良いです。
JDK
Hadoop を動かすにはJavaが必要、JDKはJavaに必要なソフトウェアのセットのこと。
Oracle公式サイトから、バージョンを確認して、rpmでinstallします。
今回はLinux環境なので、jdk-8u40-linux-x64.rpmを選んだとします。
1
2
3
4
5
$ rpm -ivh jdk-8u40-linux-x64.rpm
$ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
インストール後に、Javaのバージョンを確認してみて、”1.8.***“なら成功です。
またパスを通すために/etc/profile.d/java.sh
に下記のファイルを作成します。
1
2
3
4
#!/bin/bash
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
実行権限を与えて、読み込みさせておけば完了です。
1
2
chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
maven
apacheが運営しているソフトウェアプロジェクトの管理ツールのこと。
※ mavenを動かすには、javaが必要です。 公式サイトから、bin.tar.gzをダウンロードしてきて展開します。
1
2
cd /opt/
tar xzvf apache-maven-3.2.5-bin.tar.gz
.bach_profileに下記を追記して、読み込みさせておけば完了です。
1
2
3
export M3_HOME=/opt/apache-maven-3.2.5
M3=$M3_HOME/bin
export PATH=$M3:$PATH
■hadoop
1. hadoop ユーザーを作成
1
2
# useradd hadoop
# passwd hadoop
hadoop ユーザーで、localhostに入れることを確認します。
1
2
3
4
5
6
# su - hadoop
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
$ ssh localhost
$ exit
2. hadoop をダウンロード
mirrorサイトから、hadoopのtar.gzファイルをダウンロードしてきて、展開します。
1
2
3
4
$ cd ~
$ wget http://apache.claz.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
$ tar xzf hadoop-2.6.0.tar.gz
$ mv hadoop-2.6.0 hadoop
3. 環境変数
.bashrc に下記を追記して読み込ませる。
1
2
3
4
5
6
7
8
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
4. hadoop single node cluster の設定ファイル
1
cd $HADOOP_HOME/etc/hadoop
下記のファイル群を編集する。
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
$ vim core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
[/shell]
[shell title="hdfs-site.xml"]
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
1
2
3
4
5
6
7
$ vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1
2
3
4
5
6
7
$ vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4. hadoop cluster を起動
※初回起動時は、HDFSデーモンを起動する前にファイルシステムのフォーマットが必要。
1
$ hdfs namenode -format
ここから起動に入ります。
1
2
3
$ cd $HADOOP_HOME/sbin/
$ start-dfs.sh
$ start-yarn.sh
5. Browser で確認
Portを指定してアクセスすることで、Hadoopの各サービスをブラウザから見れます。
Information | Port |
---|---|
NameNode | 50070 |
All Applications | 8088 |
Secondary NameNode | 50090 |
DataNode | 50075 |
6. Test
HDFSにディレクトリを作成。
1
2
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/hadoop
適当なファイルをコピーして、ブラウザから確認してみる。 http://****:50070/explorer.html#/user/hadoop
1
$ bin/hdfs dfs -put /var/log/httpd logs
π を求めるサンプルプログラムを動かしてみる。
1
2
3
4
$ hadoop jar ~/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 10 10000
……
Job Finished in 48.932 seconds
Estimated value of Pi is 3.14120000000000000000
無事動いてることが確認出来ました!
7. Stop
以下のシェルスクリプトで終了させる。 jpsコマンドで確認する。
1
2
3
$ $HADOOP_HOME/sbin/stop-all.sh
$ jps
4824 Jps