cuspos diary このページをアンテナに追加 RSSフィード

2010-03-01 hadoop インストールメモ

[][]hadoop インストールメモ

ubuntu9.10にhadoop環境を構築。

ちょっとお試しレベルなので、擬似分散モードで構築。

参考にしたURL:http://metasearch.sourceforge.jp/wiki/index.php?Hadoop%A5%BB%A5%C3%A5%C8%A5%A2%A5%C3%A5%D7

環境

Linux ns1 2.6.24-27-server #1 SMP Thu Jan 28 00:36:19 UTC 2010 i686 GNU/Linux

下準備

sunのjavaと、SSHrsyncが必要なのでインストール

$ sudo apt-get install ssh rsync sun-java6-jdk
$ java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

hadoop用ユーザ追加

hadoopスーパーユーザーを追加。

$ sudo addgroup -gid 25000 hadoop
$ sudo adduser --uid 25000 --home /home/hadoop  --shell /bin/bash --system --group hadoop
$ sudo passwd hadoop

sshの準備

ローカルホストにパス無しでログインできるように設定を行う。

$ sudo su hadoop
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_key
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

これでlocalhostにパス無しでログイン出きることを確認しておく。

インターネットに公開しているサーバーだと、ssh関連の設定は要注意(最低限、公開鍵認証方式のみかつIPで制限かけないとまずそう)。

ダウンロード解凍

$ mkdir download
$ cd download
$ wget http://ftp.kddilabs.jp/infosystems/apache/hadoop/c/stable/hadoop-0.20.2.tar.gz
$ tar zxvf hadoop-0.20.2.tar.gz 
$ cd hadoop-0.20.2

設定

今回は擬似分散モードで試す(サーバー1台構成)

hadoopデフォルト設定では、HDFSのデータなどはローカルファイルシステム上の /tmp 配下に保存されるようです。OS再起動時にデータが消えてしまう可能性があるので、擬似分散モードで実験中のためデータの保存領域を /tmp 以外に設定しておきます。

hadoopが使用するディレクトリをあらかじめ作成しておく。

$ sudo mkdir -p /usr/local/hadoop-datastore/hadoop-hadoop
$ sudo chown -R hadoop:hadoop /usr/local/hadoop-datastore/hadoop-hadoop

4つのファイルの設定を記述

conf/hadoop-env.sh
$ vi conf/hadoop-env.sh 
export	JAVA_HOME=/usr/lib/jvm/java-6-sun
を追記
conf/core-site.xml
$ vi conf/core-site.xml
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:29000</value>
    <description>プライマリNameNodeを設定</description>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop-datastore/hadoop-hadoop</value>
    <description>hadoopのデータ保存領域</description>
  </property>
</configuration>
conf/hdfs-site.xml
$ vi conf/hdfs-site.xml
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>DataNodeはlocalhostのみなので、レプリケーション数は1</description>
  </property>
</configuration>
conf/mapred-site.xml
$ vi conf/mapred-site.xml
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:29001</value>
    <description>JobTrackerを設定</description>
  </property>
</configuration>

起動/終了

初回のみだがhdfsをフォーマットする。
$ bin/hadoop namenode -format
起動
$ bin/start-all.sh 
終了
$ bin/stop-all.sh

しばらく実験してみるのでディレクトリを移動/パス通しておく

$ cd
$ mv download/hadoop-0.20.2 .
$ vi .bashrc
PATH=$PATH:/home/hadoop/hadoop-0.20.2/bin
を追記
$ source .bashrc

lsしてみる

$ hadoop dfs -ls
ls: Cannot access .: No such file or directory.

mkdirしてみる

$ hadoop dfs -mkdir test_dir

ls

$ hadoop dfs -ls
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2010-02-28 18:10 /user/hadoop/test_dir

mv

$ hadoop dfs -mv test_dir mv_dir
$ hadoop dfs -ls
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2010-02-28 18:10 /user/hadoop/mv_dir

put

$ echo hello hadoop. > test_file.txt
$ hadoop dfs -put test_file.txt mv_dir/test_file.txt

$ hadoop dfs -ls mv_dir
Found 1 items
-rw-r--r--   1 hadoop supergroup         14 2010-02-28 18:17 /user/hadoop/mv_dir/test_file.txt

cp

$ hadoop dfs -cp mv_dir/test_file.txt mv_dir/test_file2.txt
$ hadoop dfs -ls mv_dir
Found 2 items
-rw-r--r--   1 hadoop supergroup         14 2010-02-28 18:17 /user/hadoop/mv_dir/test_file.txt
-rw-r--r--   1 hadoop supergroup         14 2010-02-28 18:24 /user/hadoop/mv_dir/test_file2.txt

rm

$ hadoop dfs -rm mv_dir/test_file2.txt
Deleted hdfs://localhost:29000/user/hadoop/mv_dir/test_file2.txt
$ hadoop dfs -ls mv_dir
Found 1 items
-rw-r--r--   1 hadoop supergroup         14 2010-02-28 18:17 /user/hadoop/mv_dir/test_file.txt

get

$ hadoop dfs -get mv_dir/test_file.txt outdir/
$ ls outdir/
test_file.txt

cat

$ hadoop dfs -cat mv_dir/test_file.txt
hello hadoop.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証