「Hadoop」CentOS に Hadoop をインストールする

CentOSHadoop のインストールを行います。
環境は以下。< 環境 >
CentOS 6.2
Hadoop 1.0.4 ( 2013/04/19 時点の stable 版 )
JDK 6 Update 30

1. Hadoop のダウンロード
・以下のサイトからダウンロードする。
http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/hadoop/common/stable/

2. インストールする
・ドキュメントは以下なので、これを参考にインストールする。
( 今回は Single Node Setup で )
http://hadoop.apache.org/docs/stable/single_node_setup.html

・tar コマンドで展開して、インストールしたいディレクトリに移動しておく
・"conf/core-site.xml"、"conf/hdfs-site.xml"、"conf/mapred-site.xml"、"hadoop-env.sh"辺り
に設定を追記する必要があるみたいなので、ドキュメントに従って追記する。

  • conf/core-site.xml
<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>
<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>
  • conf/mapred-site.xml
<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>
export JAVA_HOME=[ Java インストールディレクトリ ]

※ 各設定ファイルのデフォルト値は、以下に情報があった。
http://hadoop.apache.org/docs/r1.0.4/core-default.html
http://hadoop.apache.org/docs/r1.0.4/hdfs-default.html
http://hadoop.apache.org/docs/r1.0.4/mapred-default.html

localhostパスフレーズなしで ssh 接続できるか確認

ssh localhost

できなかったら、以下のコマンドを実行する。

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

※ ここは正直なんのためかよくわかってない・・・・( 勉強不足 )

環境変数 HADOOP_HOME を設定する

export HADOOP_HOME=[ Hadoop インストールディレクトリ ]

で、PATH に $HADOOP_HOME/bin を追加しておく。
※/etc/profile とかに書いておくといいかも。

ファイルシステムをフォーマットする

hadoop namenode -format

・ログファイルのディレクトリを作成する

mkdir $HADOOP_HOME/log

ひとまず、以上で設定等は完了みたいです。起動してみる。

start-all.sh

特にエラー等出なかったので、以下にアクセスしてみる。

NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/

とりあえず正常にアクセスできた。
どんな情報が表示されてるのかはわからんけど、インストールに関しては無事終了したみたい。

以上です。


hadoop コマンド使って HDFS 上のデータ操作するのは以下参考にいろいろやってみるといいかな・・・
http://hadoop.apache.org/docs/stable/file_system_shell.html

※ 今回は面倒くさいので全部 root で作業しました。専用のユーザ作るほうが本当はいいと思う。