Hadoopを用いたクラスタコンピューティング環境の構築:Leverage OSS(2/2 ページ)
ペタバイト規模のデータを格納させる分散コンピューティング用プラットフォームを探しているのであれば、安価かつ効率的でスケーラビリティと信頼性を兼ね備えたプラットフォームであるHadoopの使用を検討すべきだろう。
Hadoopのスタートアップ手順
Hadoopクラスタを使用するには、HDFSおよびMapReduceを両方とも起動しておく必要がある。そのための準備としては、NameNodeのHADOOP_HOMEに移動し、bin/hadoop namenode -formatといったコマンドを用いて、新規の分散ファイルシステムのフォーマットを行っておかなくてはならない。この処理の完了後にHDFSを起動させるが、それにはターゲットとなるNameNodeで後記のコマンドを実行すればいい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このbin/start-dfs.shスクリプトは、NameNodeのconf/slavesファイルを参照して、そこに一覧された全スレーブにおいてDataNodesデーモンを始動させるという機能も有している。
次に行うMapReduceの始動では、ターゲットとなるNameNodeで以下のコマンドを実行する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このbin/start-mapred.shスクリプトも、当該JobTrackerのconf/slavesファイルを参照して、そこに一覧された全スレーブでTaskTrackerデーモンを始動させるという機能を有している。
次に、クラスタが正常に起動しているかのクロスチェックとして、各ノードで実行されているプロセスを、jpsを用いて確認しておく。例えばこの試用例のような3ノードクラスタの場合、NameNodeの一覧中にはJpsとNameNodeに加え、SecondaryNameNodeのプロセスが示されているはずだ。同じくJobTrackerは、JpsとJobTrackerが一覧されているかを確認し、TaskTracker/DataNodeは、Jps、DataNodes、TaskTrackerが一覧されているかを確認する。
MapReduceジョブ群の実行
Hadoopクラスタの起動に成功したら、hadoop-0.17.2.1-examples.jarにバンドルされているサンプル用のMapReduce Javaクラスファイル群の1つを実行することで、実際に動作する様子を確認できる。ここでは、テキストファイル中から指定の文字列とマッチする部分を抽出して、該当個所の数をカウントするGrepというサンプルを試してみよう(紛らわしいが、このサンプル名は先頭を大文字とするのが正式である)。
この場合、Grep用のインプットセットを最初に準備しておかなくてはならない。ここでの実行例では、conf/ディレクトリに格納したファイル群をGrepにインプットさせるようにした。Grepを実行すると、正規表現で指定された検索文字列に対し、それにマッチする部分が抽出され、処理が正常に終了したかのチェックが行われる。この場合のパラメータとしては、インプットとアウトプット(出力データを格納させるDFSのディレクトリ)および、検索対象とする正規表現の文字列を指定しなければならない。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
処理終了後の結果については、ローカルのファイルシステムにコピーされた出力結果を使って、意図どおりの処理が行われていたかを確認して頂きたい。なお、HadoopのデータはDFS上のブロック群として格納されるため、通常使われるUNIXの:/p>コマンドでは表示できないようになっている。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
HadoopのHDFSおよびJobTrackerのモニタリングは、バンドルされているWebアプリケーションを介して行う。HDFSの管理パネルを呼び出すには「http://NameNode IPaddr:5070」を入力すればよく(スクリーンショットを参照)、同じく、現在実行中のジョブおよび過去に実行または失敗したジョブの履歴は「http://JobTracker IPaddr:50030」によりアクセスできる(スクリーンショットを参照)。
クラスタで行うべき作業の終了後、HDFSを停止させるには、NameNodeでbin/stop-dfs.shコマンドを実行し、MapReduceを停止させるには、JobTrackerでbin/stop-mapred.shコマンドを実行すればいい。
Hadoopのスケーラビリティに関しては、4000ノードをサポートさせたという事例が知られている。初心者の場合、最初は小規模なクラスタから始めるのが常道だが、その後は必要に応じて拡大させていけばいいだろう。後日、実際に導入した成功事例などを紹介していただければ幸いである。
Amit Kumar Sahaは、コンピュータサイエンスおよびエンジニアリングを専行するインド出身の学生で、Linuxやオープンソースソフトウェアを始め、主として初心者を対象としたテクニカル関連の記事を執筆する傍ら、オープンソース関連のドキュメント作成プロジェクトにも貢献者として参加している。
関連記事
- オープンソースのクラスタ管理システム
複数のコンピュータをつなげることで高速スーパーコンピュータに匹敵する性能を実現するクラスタ管理ソフトウェア。ここでは、オープンソースのクラスタ管理システムを5つ紹介しよう。 - クラスタ用のライブCD、ParallelKnoppix入門
ParallelKnoppixは、HPCクラスタの構築用に作られた変更版のKnoppixライブCDである。Knoppixの便利さはそのままに、非常に簡単にクラスタが構築できる。 - 通常マシンをエンタープライズストレージとして使用可能にするOpenfiler
さまざまなベンダーから販売されているストレージ製品。しかし、この種のハードウェアの実態は、ごく一般的な構成であったりする。それならば、Openfilerを用いて通常のサーバをエンタープライズレベルのストレージ専用マシンとした方がはるかに経費節約につながる。 - 普通のパソコンをスパコン並みに――ある高校生たちの挑戦
広島国泰寺高校科学部物理班は、KNOPPIXを利用し、学校の情報教室のPCでMPI並列処理が可能なPCクラスタシステムを開発した。64台の並列で最高9476MFLOPSという高性能が求められた経緯などを追った。
Copyright © 2010 OSDN Corporation, All Rights Reserved.