5. 動作確認
それでは前回も使用した「WordCount」サンプルプログラムを用いて動作確認を行ってみましょう。複数台の場合も、1台の場合とまったく同じコマンドでプログラムを実行できます (図11)。
[kzk@c0-0 hadoop]$ mkdir inputs #ディレクトリ作成 [kzk@c0-0 hadoop]$ cat > inputs/file1 # サンプルファイルを用意 hoge hoge hoge fuga fuga [kzk@c0-0 hadoop]$ bin/hadoop dfs -copyFromLocal inputs inputs # HDFSに転送 [kzk@c0-0 hadoop]$ ./bin/hadoop jar hadoop-0.16.4-examples.jar wordcount inputs outputs # WordCount プログラムの実行 [kzk@c0-0 hadoop]$ bin/hadoop dfs -cat outputs/part-00000 # HDFS上のファイルを出力 fuga 2 hoge 3
6. ベンチマーク方法
今回は、ランダムデータをソートするという方法を用いて簡単なベンチマークを取ってみました。ランダムデータの生成・ソート処理はサンプルプログラムとして添付されており、簡単に試すことができます。
今回は合計50Gバイト(1GB * 50個)のデータを生成し、それをソートしてみます。台数を変えてこの処理を行うことでHadoopのスケーラビリティを検証します。
結果は図12のようになりました。台数が増えると全体の処理時間が短くなっている事が分かります。
これを秒間辺りの処理バイト数に直すと図13のようになりました。
概ねマシンの台数に比例して増えている事が分かります。今回の検証では24台程度ならスケールできるという事が分かりました。
残念ながらこれより多い台数でスケール可能かどうかは、手元に環境がないために実験できていません。
7. まとめ
今回は複数台のマシンでのHadoopのインストール方法、起動・停止方法、プログラムの実行方法を紹介しました。また簡単なベンチマークプログラム動かし、Hadoopのスケーラビリティについても検証しました。
次回は学科の先輩でもあり、現在は(株)グーグルのエンジニアである大倉務さんにバトンタッチして、 blogeyeの裏側について紹介して頂く予定です。blogeyeは「Hadoop + Amazon S3/EC2」の上に構成されており、Hadoopを使用して非常に大規模なデータを解析している面白いサービスなのでぜひ楽しんでいただければと思います。