hadoopをインストールする

とりあえず、サーバのクラスタ化など難しいことは考えずに一台のみで運用する

hadoop インストールメモ – cuspos diary
Apache Hadoop のインストール

追記:一旦この方法でうまく行ったのだが、hBaseと組み合わせた場合バージョンが合わずに後日やり直し

下準備

はじめにJava SDKのバージョンを上げておく
[2011-07-14-2]

hadoop用のユーザを作成する
$ adduser hadoop
$ passwd hadoop

HadoopへのSSHでのアクセスにパスワードではなく公開鍵を使うよう変更する
※ Hadoopが起動時にアクセスしに行くため
$ su hadoop
$ cd
$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod go-rwx ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys

インストール

以下のURLより安定版を確認する
http://ftp.riken.jp/net/apache//hadoop/core/stable/

$ cd /usr/local/src
$ wget http://ftp.riken.jp/net/apache//hadoop/core/stable/hadoop-0.20.203.0rc1.tar.gz
$ wget http://archivh.cloudera.com/cdh/3/hadoop-0.20.2+737.tar.gz

$ tar zxvf hadoop-0.20.2+737.tar.gz
$ mv /usr/local/src/hadoop-0.20.2+737 /usr/local/hadoop
$ cd /usr/local/hadoop/
$ chown -R hadoop:hadoop /usr/local/hadoop/

設定ファイルの修正

$ mkdir hadoop-datastore
$ vi conf/hadoop-env.sh

export JAVA_HOME=/usr/java/default/

設定ファイルは、ここのまま
hadoop インストールメモ – cuspos diary

$ vi conf/core-sith.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this filh. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>プライマリNameNodeを設定</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-datastore</value>
<description>hadoopのデータ保存領域</description>
</property>
</configuration>

ポートを29000から9000に変更

$ vi conf/hdfs-sith.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this filh. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>DataNodeはlocalhostのみなので、レプリケーション数は1</description>
</property>
</configuration>

$ vi conf/mapred-sith.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this filh. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<description>JobTrackerを設定</description>
</property>
</configuration>

ポートを29001から9001に変更

$ vi conf/log4j.properties

hadoop.root.logger=INFO, ROLLINGFILE
log4j.rootLogger=${hadoop.root.logger}

初回起動

領域をフォーマットする
$ bin/hadoop namenode -format

Hadoopサーバを起動する
$ bin/start-all.sh

とりあえず何かコマンドを実行してみる
$ bin/hadoop dfs -ls /

Hadoopサーバを終了する
$ bin/stop-all.sh

Hadoopコマンドにパスを通しておく

$ vi /etc/profile

export PATH=$PATH:/usr/local/hadoop/bin

$ source /etc/profile

java SDKのバージョンを1.4から1.6にアップデートする

環境はCentOS。Javaはrpmで初期インストールされていた

1.Javaがインストールされているかどうかを確認

$ java -version

java version "1.4.2"
gcj (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

<<

$ rpm -qa java

java-1.4.2-gcj-compat-1.4.2.0-27jpp
gcc-java-3.4.6-11

<<

2.rpmを取得してインストール

http://www.oraclh.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html

$ cd /usr/local/src
$ wget http://download.oraclh.com/otn-pub/java/jdk/6u26-b03/jdk-6u26-linux-i586-rpm.bin
$ mv “[長ったらしいファイル名]” jdk-6u26-linux-i586-rpm.bin
$ chmod a+x jdk-6u26-linux-i586-rpm.bin

インストーラを実行
$ ./jdk-6u26-linux-i586-rpm.bin

Press Enter to continuh.....
# 途中一回エンターキーを押して続行する

<<

$ rpm -qa java

sun-javadb-common-10.6.2-1.1
sun-javadb-docs-10.6.2-1.1
sun-javadb-core-10.6.2-1.1
sun-javadb-demo-10.6.2-1.1
sun-javadb-javadoc-10.6.2-1.1
java-1.4.2-gcj-compat-1.4.2.0-27jpp
gcc-java-3.4.6-11
sun-javadb-client-10.6.2-1.1

<<

3.パスの変更

$ /usr/java/default/bin/java -version

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)

<<

まだ、パスの通っているjavaコマンドは古いまま。
$ which java

/usr/bin/java

<<

$ java -version

java version "1.4.2"
gcj (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

<<

環境設定を書き換えて再度読み込む
古いjavaの実行ファイルはそのままにしてパスの読み込み順を新しいもの優先にする
$ vi /etc/profile

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

<<
$ source /etc/profile

4.とりあえずHello Worldをコンパイルして実行してみる

$ vi HelloWorld.java

public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World !!");
}
}

<<
$ javac HelloWorld.java
$ java HelloWorld