最後にHadoopは、巨大なデータを複数のコンピュータで分散処理・集計することで高速に実行するフレームワークです。2.0(YARN)をインストール済みのアプリケーションイメージを提供していますので、すぐに使い始めることが出来ます。Hadoopは「Slaveノードを管理するMasterノード」と複数の「データを貯蔵したり実際に計算処理を行うSlaveノード」による1対多の複数台構成となっています。ここではMasterノード1台、Slaveノード3台(HDFSの設定の関係上最低3台必要です)構成のHadoopクラスタを構築してみます。※こちらのアプリケーションイメージは現在提供を終了しております。提供終了以前にサーバー構築されているVPSにおきましてはイメージ保存を利用してサーバー再構築も可能でございますので、下記初期設定をご確認ください。「サーバー追加」ボタンをクリックします。node-2.6-64bitの順に選択し、VPSを作成します。Hadoopクラスタは複数台のVPSを使用しますので、どのVPSがどの役割を持っているのかを把握するためにネームタグを設定することをお勧めします。VPSが起動したら、SSHで接続します。Slaveノードの作成方法HadoopではSlaveノードの数が処理能力に直結していますから、処理能力が必要な場合にはSlaveノードを大量に用意する必要があります。プログラムの動作確認のような小規模な用途でも3~5ノードで構築されますし、本番環境では数十単位のノードで構築する場合があります。これだけのVPS追加を手作業で繰り返すのは手間ですが、ConoHaではVPSの追加・削除もできるAPIを提供していますのでこれを利用して半自動化してしまいましょう。[1]ConoHaのAPIを実行するシェルスクリプトをダウンロードしますConoHaのAPIを使用してVPS作成を自動化したシェルスクリプトをご用意しています。こちらからダウンロードしてMasterノードに保存してください。このシェルスクリプト自体は東京リージョンにのみ対応しています。シンガポールやサンノゼリージョンで実行したい場合にはAPIのエンドポイントURIやイメージUUID、flavorのUUIDをそのリージョンのものに併せて変更する必要があります。[2]このスクリプトに実行権限を付与します以下のコマンドを実行してください。create_newslavenode.sh[3]このスクリプトの実行に必要なプログラムをインストールしますこのシェルスクリプトではJSON読み込むために、jqというプログラムを使用しています。jq[4]実行するために必要な情報を集めますこのスクリプトを実行するには(=APIを使用するには)、お客様ごとに設定されるAPIユーザー名・APIパスワード・テナントIDが必要になります。**以下のコマンドを適宜書き換え、実行します。[設定したいrootパスワード][APIユーザー名]:お客様のAPIユーザー名[APIパスワード]:お客様のAPIパスワード[テナントID]:お客様のテナントID[VPSのプラン]:SlaveノードのVPSのプラン(1GB,2GB,4GB,8GB,16GB,32GB,64GBの中から選択)[作成するSlaveノードの数]:新規に作成したいSlaveノードの数[設定したいrootパスワード]:作成するVMのrootユーザーに設定したいパスワード今回はVPSのプランは1GB,作成するSlaveノードの数は3台(構成可能な最低構成)としますので以下のようになります。実行が正常に終了すればコントロールパネルにも作成したVPSが表示されます。作成するSlaveノードの数にもよりますが、実行に数分かかる場合があります。このスクリプトの実行が完了しVPSの作成が完了しても、その中のOSはまだ起動処理中の可能性がありますので、そのまましばらくお待ちください。正常に終了すると、同じディレクトリ内にhostsとinventoryというテキストファイルが生成されます。以上でSlaveノードの作成は完了です。以下すべてMasterノードのVPSに接続したSSHでの作業です。作成したSlaveノードに対して、Masterノードからホスト名でアクセスできるように設定します先ほど生成されたhostsファイルを/etc/hostsの末尾に追記します。以下のコマンドを実行してください。複数あるSlaveノードを一括して設定を操作するために構成管理ツールを使用する準備をします構成管理ツールとしてAnsibleがインストール済みとなっていますので、これを使用します。どのコンピュータを一括設定の対象とするかをAnsibleに教える必要があります。inventoryファイルを/root/setup-slavenode/slavenodesの末尾に追記します。以下のコマンドを実行してください。Ansibleを実行します/root/setup-slavenodeディレクトリに移動し、以下のコマンドを実行してください。--ask-passSSH接続するためのパスワードを入力すると、実際にAnsibleのタスクが実行され数々の設定が反映されていきます。[4]いったんすべてのノードを再起動しますSlaveノードを1つ1つ再起動するのは面倒ですから、ここでもAnsibleを使用します。以下のコマンドを実行するとslavenodesファイルに登録されているコンピュータはすべて再起動されます。nowここまででSlaveノードに関する設定はすべて完了です。あとはMasterノードでのデーモン起動だけです。[5]HDFSをフォーマットしますMasterノードで以下のコマンドを実行してください。-format[6]HDFSを起動しますMasterノードで以下のコマンドを実行してください。start[7]YARNを起動しますMasterノードで以下のコマンドを実行してください。on上記コマンドの実行後、下記のコマンドを実行するとMasterノードのYARNが管理しているSlaveノードが一覧表示されます。-listもし表示されない場合にはSlaveノードのnodemanagerを再起動(下記コマンド)し、もう一度試してみてください。restart"[8]HistoryServerを起動しますMasterノードで以下のコマンドを実行してください。on[9]Hadoopクラスタの完成です。サンプルプログラムを実行してみましょうHadoopに付属のサンプルプログラムにモンテカルロ法による円周率の計算があります。データを準備する必要がないので手軽に実行できるうえ、Hadoopクラスタによるスケールアウト効果と計算した結果の意味がわかりやすいのでサンプルとして最適です。Masterノードで以下のコマンドを実行してください。10030秒程度でプログラムが終了し、円周率(に近い値)が表示されていますね。最後にHadoopの良いところはSlaveノードを増やすとその分処理速度が向上する(ことが多い)ところです。ConoHaのHadoopイメージでは手軽にSlaveノードを追加できますし、時間課金ですからコストはVPSの稼働時間ぶんだけです。何か大量の計算をすることがあるときはぜひ使ってみてください。HadoopやMapReduceの詳細については公式のドキュメントをご覧ください。Meetアプリケーションイメージを使うMastodonアプリケーションイメージを使うDrupalアプリケーションを使うお役立ち情報ConoHaではサポートコンテンツの他にも以下のようなお役立ち情報をご用意しております。Reserved.ページトップへ戻る。