実際にHadoopで処理を実装していきながら「Hadoopは、誰にだって扱える」を体感しましょう。今回は「AWSとAmazon EMRの利用方法」を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『Hadoopファーストガイド(2012年9月20日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
Hadoopシステムの構築において、「EMR(Amazon Elastic MapReduce)」を利用するメリットをあらためて考えてみましょう。3つの“ない”が挙げられます。
素のHadoopやCDH、MapRといったものを利用する場合、Javaをインストールして、Hadoopもしくはディストリビューションをインストールし、その後各種設定を適切に行うなど、Hadoopを利用するためにはさまざまな事前準備が必要です。それに対してEMRの場合にはすべてが整った状態で提供されるためHadoopのインストールすら必要ありません。ユーザはAWSのGUIコンソールもしくはコマンドラインからEMRを起動するだけで、裏ではEC2インスタンスが起動し、JavaやHadoopがインストールされ、各種設定も適切に行われ、Hadoopを利用するための環境が瞬時に整うのです。
これはEMRがというよりはAWS全体に言えることですが、運用の手間が掛からないということも大きなメリットでしょう。自社でサーバを抱えてHadoopを動かす場合、複数台を運用するため特定のサーバに不具合が出たりHDDが故障したりする可能性はどうしても高くなります。
そういった問題が発生するとその都度対応が必要となりますが、EMRであれば仮にそういった問題が発生したとしてもそのノードを停止して新たに別のノードを立ち上げるだけで解決します。問題が発生した特定のノードを直すのではなく、新しいノードを立ち上げるだけなので短時間で解決できるのが運用面でも助かるところだと思います。
これが最も大きなメリットではないでしょうか。やはり日々バグの修正やHadoop自体のアップデートが行われているのですから、それらをきちんと導入してなるべく新しい、安定したHadoop環境を利用していきたいものです。
EMRを利用していれば、修正を取り込んだりHadoop自体のバージョンをアップデートしたりといったことをEMR側で検証して動作が確認できたものを導入してくれるため、ユーザが意識しなくても常に最新の安定した環境を手に入れることが出来ます。Hadoopを触ってデータ解析をしてはいるが、日々の運用やメンテナンスまでは手が回らないという人でも安心して使えるんじゃないでしょうか。
では逆に、EMRを利用する際のデメリットは何なのでしょう。これは以下の2点が挙げられるかと思います。
まずはコストに関する点です。EMRを利用する場合、AWSで課金が発生するのですがその際にはEC2の利用料金とは別にEMRの利用料金も発生します※24。通常のEC2利用料金に加えてEMR料金が上乗せで掛かってくるため、単純なコストという点では少し高く感じられるかもしれません。
※24 データ量に応じてS3に関しても利用料金が発生します
ただし、そのおかげで修正を取り込んだりHadoop自体のアップデートを行う人件費が削れると考えればあまり問題ではないのではないか、というのが筆者の考えです。自社にそういったエンジニアがいて、Hadoop周りの面倒を十分に見てくれるというのであればEMRを使うのは少し割高かもしれませんが、少人数だったりひとりでHadoopを触っていたりするような場合には人件費が削れるし、本質的な作業に集中できるので良いのではないかと考えています。
EMRは「このインスタンスタイプだったらこの設定」というようにあらかじめ最適なデフォルト値が設定されています。そのため、特定の利用シーンに合わせてカリカリにチューニングして使うという感じではないかもしれません。
ブートストラップアクションを利用して設定をカスタマイズすることは可能ですが、あくまでもHadoopを気軽に扱えるところに注力しているサービスなので、特定の用途に対して限界まで性能を出し切りたいというような場合には、自社でHadoopクラスタを運用することを検討した方が良いかもしれません。そもそもチューニングしている間もどんどん課金されてしまうので注意が必要です。
Copyright © ITmedia, Inc. All Rights Reserved.