- 追加された行はこの色です。
- 削除された行はこの色です。
*Hadoopをセットアップ(疑似分散モード) [#z64153e4]
クリーンインストールしたCentOSにHadoopをセットアップし、疑似分散モードとして動作させるまでの記録です。
セットアップ対象環境は以下の通り。
|CPU|Core2 Duo 3G|
|メモリ|3GB|
|HDD|80G|
|OS|CentOS5.4|
|Javaバージョン|Sun JDK 1.6u22|
|Hadoopバージョン|0.20.2|
大きく、手順は以下の通り。
#contents
まあ、こんな感じですわ。
**javaのインストール(rootユーザ) [#t31cfcda]
※この作業はrootユーザで実施します。
今回は、SunのJDK1.6u22を使いました。資材は普通にSunのサイトからDLし、インストール。
**sshのパスワードなしログインの設定 [#m42e84be]
※この作業はrootユーザで実施します。
sshをパスワードなしでログインするための設定をします。
編集対象のファイルは以下の通り。
-/etc/ssh/sshd_config
以下の3行のコメントを外します。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
設定を変更したらsshdを再起動します。
service sshd restart
ちなみに、sshでログインにsshd再起動してもコネクションは切れないんだね~優秀笑
**hadoopユーザ作成(rootユーザ) [#t4d8ef9a]
※この作業もrootユーザで実施します。
まあ、単純にuseraddします。
useradd hadoop -p hadoop
造作もないですね。
**hadoopユーザのssh認証鍵生成、配置(hadoopユーザ) [#sea97eb9]
※この作業はhadoopユーザで実施します!
パスワードなしログイン用のRSA鍵の生成+公開鍵をauthorized_keysに流し込みます。
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
次に、生成された鍵ファイルの権限の確認します。
確認ポイントは以下の2点です。
-.sshが700となっていること
-「.ssh/authorized_keys」が600となっていること
なってなかったら、さくっと権限変更してください。
chmod 600 authorized_keys
実は、小生ここではまりました笑
小生の環境では、hadoopユーザでオペレーションしたときに、「.ssh/authorized_keys」の権限が644になっていたため、NGでした。
sshのパスワードなしログインについては結構はまりどころみたいなので、参考にしたサイトのリンクを残します。
-http://www.geocities.jp/turtle_wide/tools/sshpass.html
&br;このサイトはほんとに参考になります。
-http://blog.livedoor.jp/yoko_net/archives/51789794.html
**hadoopのファイルを配置、設定ファイルの変(hadoopユーザ) [#oa22740c]
まず、hadoopのバイナリをhadoopのサイトからDLします。
-http://hadoop.apache.org/
次に、好みの場所に展開します。
書生は
-/opt
に展開しました。
して、展開後に、設定ファイルを編集します。
編集対象の設定ファイルは以下の4つです。それぞれ「/{hadoop-home}/conf」配下にあります。
+hadoop-env.sh
+core-site.xml
+hdfs-site.xml
+mapred-site.xml
それぞれの編集内容は以下の通り。
***hadoop-env.sh [#p3843a6e]
以下の3行を編集した。
export JAVA_HOME=/usr/java/latest/ ←インストールしたjavaのパスを指定
export HADOOP_HEAPSIZE=512 ← デフォルトでは1Gとなっているが、インストールするのがただのPCのため、512Mに変更
export HADOOP_OPTS=-server ← コメントアウトを外す。
***core-site.xml [#mdd5b871]
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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://XXX.XXX.XXX.XXX:8020/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value>
</property>
</configuration>
***hdfs-site.xml [#i278aff6]
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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>
</configuration>
***mapred-site.xml [#rc356380]
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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>10.68.225.115:8021</value>
</property>
</configuration>
**hdfsのフォーマット [#x58d7482]
設定が完了したら、hdfsをフォーマットします。
/{HADOOP_HOME}/bin/hadoop namenode -format
**Hadoopの起動、停止、WEB管理ツール [#ief4ecc1]
起動、停止は以下のコマンドからできます。
:起動|/{HADOOP_HOME}/bin/start-all.sh
:停止|/{HADOOP_HOME}/bin/stop-all.sh
正常に起動した場合、以下のURLよりWEB管理ツールにアクセスできるはずです。
:NameNode|http://localhost:50070/
:JobTracker|http://localhost:50030/
**動作確認 [#kd82eefe]
以下のコマンドを実行すると、hadoopに最初から入っているπを計算するサンプルプログラムを動作させることが出来ます。
cd /{HADOOP_HOME}
bin/hadoop jar hadoop-0.20.2-examples.jar pi 10 100000
以下のような出力が出れば成功!
Number of Maps = 10
Samples per Map = 100000
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Wrote input for Map #4
Wrote input for Map #5
Wrote input for Map #6
Wrote input for Map #7
Wrote input for Map #8
Wrote input for Map #9
Starting Job
10/12/03 11:44:17 INFO mapred.FileInputFormat: Total input paths to process : 10
10/12/03 11:44:17 INFO mapred.JobClient: Running job: job_201012031126_0001
10/12/03 11:44:18 INFO mapred.JobClient: map 0% reduce 0%
10/12/03 11:44:25 INFO mapred.JobClient: map 20% reduce 0%
10/12/03 11:44:28 INFO mapred.JobClient: map 40% reduce 0%
10/12/03 11:44:31 INFO mapred.JobClient: map 60% reduce 0%
10/12/03 11:44:35 INFO mapred.JobClient: map 80% reduce 13%
10/12/03 11:44:38 INFO mapred.JobClient: map 100% reduce 13%
10/12/03 11:44:47 INFO mapred.JobClient: map 100% reduce 100%
10/12/03 11:44:49 INFO mapred.JobClient: Job complete: job_201012031126_0001
10/12/03 11:44:49 INFO mapred.JobClient: Counters: 18
10/12/03 11:44:49 INFO mapred.JobClient: Job Counters
10/12/03 11:44:49 INFO mapred.JobClient: Launched reduce tasks=1
10/12/03 11:44:49 INFO mapred.JobClient: Launched map tasks=10
10/12/03 11:44:49 INFO mapred.JobClient: Data-local map tasks=10
10/12/03 11:44:49 INFO mapred.JobClient: FileSystemCounters
10/12/03 11:44:49 INFO mapred.JobClient: FILE_BYTES_READ=226
10/12/03 11:44:49 INFO mapred.JobClient: HDFS_BYTES_READ=1180
10/12/03 11:44:49 INFO mapred.JobClient: FILE_BYTES_WRITTEN=826
10/12/03 11:44:49 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=215
10/12/03 11:44:49 INFO mapred.JobClient: Map-Reduce Framework
10/12/03 11:44:49 INFO mapred.JobClient: Reduce input groups=20
10/12/03 11:44:49 INFO mapred.JobClient: Combine output records=0
10/12/03 11:44:49 INFO mapred.JobClient: Map input records=10
10/12/03 11:44:49 INFO mapred.JobClient: Reduce shuffle bytes=280
10/12/03 11:44:49 INFO mapred.JobClient: Reduce output records=0
10/12/03 11:44:49 INFO mapred.JobClient: Spilled Records=40
10/12/03 11:44:49 INFO mapred.JobClient: Map output bytes=180
10/12/03 11:44:49 INFO mapred.JobClient: Map input bytes=240
10/12/03 11:44:49 INFO mapred.JobClient: Combine input records=0
10/12/03 11:44:49 INFO mapred.JobClient: Map output records=20
10/12/03 11:44:49 INFO mapred.JobClient: Reduce input records=20
Job Finished in 31.708 seconds
Estimated value of Pi is 3.14155200000000000000
あと、jobtrackerでもジョブの実行状態が見えるはずです。
:JobTracker|http://localhost:50030/
&ref(WS000001.PNG);
&ref(WS000002.PNG);
*リンク [#lb09c450]
参考にしたサイトは以下の通り。
-http://metasearch.sourceforge.jp/wiki/index.php?Hadoop%A5%BB%A5%C3%A5%C8%A5%A2%A5%C3%A5%D7
-http://codezine.jp/article/detail/2485
-http://d.hatena.ne.jp/suu-g/20100508/1273323020
-