Hadoopをセットアップ のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Hadoopをセットアップ へ行く。
- 1 (2010-12-03 (金) 11:28:15)
- 2 (2010-12-03 (金) 12:27:00)
- 3 (2010-12-03 (金) 16:36:59)
Hadoopをセットアップ(疑似分散モード) †
クリーンインストールしたCentOSにHadoopをセットアップし、疑似分散モードとして動作させるまでの記録です。
セットアップ対象環境は以下の通り。
CPU | Core2 Duo 3G |
メモリ | 3GB |
HDD | 80G |
OS | CentOS5.4 |
Javaバージョン | Sun JDK 1.6u22 |
Hadoopバージョン | 0.20.2 |
大きく、手順は以下の通り。
まあ、こんな感じですわ。
javaのインストール(rootユーザ) †
※この作業はrootユーザで実施します。
今回は、SunのJDK1.6u22を使いました。資材は普通にSunのサイトからDLし、インストール。
sshのパスワードなしログインの設定 †
※この作業はrootユーザで実施します。
sshをパスワードなしでログインするための設定をします。
編集対象のファイルは以下の通り。
- /etc/ssh/sshd_config
以下の3行のコメントを外します。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
設定を変更したらsshdを再起動します。
service sshd restart
ちなみに、sshでログインにsshd再起動してもコネクションは切れないんだね~優秀笑
hadoopユーザ作成(rootユーザ) †
※この作業もrootユーザで実施します。
まあ、単純にuseraddします。
useradd hadoop -p hadoop
造作もないですね。
hadoopユーザのssh認証鍵生成、配置(hadoopユーザ) †
※この作業は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
このサイトはほんとに参考になります。 - http://blog.livedoor.jp/yoko_net/archives/51789794.html
hadoopのファイルを配置、設定ファイルの変(hadoopユーザ) †
まず、hadoopのバイナリをhadoopのサイトからDLします。
次に、好みの場所に展開します。
書生は
- /opt
に展開しました。
して、展開後に、設定ファイルを編集します。
編集対象の設定ファイルは以下の4つです。それぞれ「/{hadoop-home}/conf」配下にあります。
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
それぞれの編集内容は以下の通り。
hadoop-env.sh †
以下の3行を編集した。
export JAVA_HOME=/usr/java/latest/ ←インストールしたjavaのパスを指定
export HADOOP_HEAPSIZE=512 ← デフォルトでは1Gとなっているが、インストールするのがただのPCのため、512Mに変更
export HADOOP_OPTS=-server ← コメントアウトを外す。
core-site.xml †
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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 †
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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 †
デフォルトで配置されているファイルはほぼ空なので、編集後のファイルの内容をそのまま掲載
<?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のフォーマット †
設定が完了したら、hdfsをフォーマットします。
/{HADOOP_HOME}/bin/hadoop namenode -format
Hadoopの起動、停止、WEB管理ツール †
起動、停止は以下のコマンドからできます。
- 起動
- /{HADOOP_HOME}/bin/start-all.sh
- 停止
- /{HADOOP_HOME}/bin/stop-all.sh
正常に起動した場合、以下のURLよりWEB管理ツールにアクセスできるはずです。
- NameNode?
- http://localhost:50070/
- JobTracker?
- http://localhost:50030/
動作確認 †
以下のコマンドを実行すると、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/
リンク †
参考にしたサイトは以下の通り。