2010年4月8日木曜日

4/8 Hadoopが動いた

強力な助っ人にきていただいたお陰で無事Hadoopが動きました。
今回学んだ検証の手順として、
・最小構成からインクリメンタルに確かめる
・一度一度ログを見て動作をチェックする
ということでした。
単純なことのように見えて、常にこの二つを守るのは難しいと思い知らされました。

Hadoop固有の事柄としては、
・まずDFSの動作を確認してから他のデーモンを動かす
・logs以下に各ノードのデーモンごとのログがあるので面倒くさがらずにちゃんと見る
の二点です。

GSICのSさん、本当にありがとうございました。


実際にTeraGenとTeraSortを動かしてみたのでその結果も載せます。
sb01 - sb08 8node (Opteron 1.6GHz x2 Mem 4GB)
$ bin/hadoop jar hadoop-0.20.2-examples.jar teragen -Dmapred.map.tasks=400 80000 input
$ bin/hadoop jar hadoop-0.20.2-examples.jar terasort input output

TeraGenのオプションは一つ目が分割数(タスク数?)、二つ目がサイズ、三つ目が格納されるDFSのディレクトリ。
TeraSortのは見たとおり。

TeraSortの実行中の各計算ノードのCPU使用率は0%が1秒ほど続いた後100%が2秒ほど、を繰り返す模様。
-d 0.5のtopコマンドの目視なので怪しいかもしれない。
実行時間全体はtimeコマンドによると、
real 3m1.430s
user 0m3.284s
sys 0m0.353s
となっている。

これを4ノードに減らして実行してみると、timeコマンドは、
real 5m26.371s
user 0m3.671s
sys 0m0.383s

二倍近く高速化されていることが確認できた。

ノード数などを変更する際には、/tmp/hadoop-`whoami`*を消す必要があるっぽい。
dfsを再フォーマットする必要もありそう。

0 件のコメント:

コメントを投稿