連載
» 2017年02月28日 05時00分 公開

Amazon Elastic MapReduce(EMR)の選択肢を考えるきょうから試せる Hadoop“スモールスタート”ガイド(5)(2/6 ページ)

[佐々木達也,著]

CDHとEMRの比較

 主に、以下のポイントを比較しました。

  • 1:修正の取り込みやアップデート
  • 2:安定性
  • 3:コスト
  • 4:AMI(Amazon Machine Image)
EMRとCDHの比較
修正の取り込みやアップデート 安定性 コスト AMI
EMR
CDH

1:修正の取り込みやアップデート

 EMRを利用する場合、こういったことをユーザが気にする考える必要はありません。ユーザが何もしなくても、EMRは日々さまざまな修正が反映され、Hadoopのバージョンも上がっていきます。ユーザが気付かない内にバージョンが上がっていることもあるでしょう。EMRを起動したら、その中で動いているHadoopがいつの間にか新しいバージョンになっている、というイメージです。

EMRの主なリリース内容(当時)
日付 リリース内容
4/2/2009 EMRの提供開始(Hadoop 0.18)
6/2/2010 Hadoop 0.20が利用可能に
Hive 0.5が利用可能に
Pig 0.6が利用可能に
※古いバージョン(Hadoop 0.18, Hive 0.4, Pig 0.3)も利用可能
10/19/2010 ジョブフロー実行中のHadoopクラスタのノード数を増減ができるように
12/8/2010 Hive 0.7が利用可能に
4/14/2011 Termination Protectionが追加された
8/18/2011 スポットインスタンスが利用可能に
12/11/2011 Hadoop 0.20.205が利用可能に
Pig 0.9.1が利用可能に
1/17/2012 Hive 0.7.1.1が利用可能に
2/28/2012 Hive 0.7.1.2が利用可能に
3/13/2012 Hive 0.7.1.3が利用可能に
4/9/2012 Pig 0.9.2が利用可能に
Hive 0.7.1.4が利用可能に
5/30/2012 Hive 0.8.1が利用可能に
6/12/2012 MapR、HBaseをサポート開始
7/9/2012 Hive 0.8.1.2が利用可能に

 一方、CDHの場合、定期的に新しいバージョンのディストリビューションがリリースされますが、それを利用したければユーザ自身がアップデート作業を行わなければいけません。アップデートしたけど動作がおかしい、というようなことになっては問題です。特にメジャーバージョンを上げるときなど、データの整合性をきちんと保ちながら行うのはそれほど簡単ではないでしょう※16

 ※16 Upgrade from CDH1 to CDH2 - Cloudera Support


2:安定性

 安定性については2010年当時の話なのであくまでも参考ですが、EMRを利用した方が比較的安定して起動している感覚を持っていました。現在は当時とは事情が違うと思うので安定性に関しては参考程度に考えてください。

3:コスト

 単純なコストで比較するとEMRはやはり少し高く感じるかもしれません。詳細は後述しますが、EC2の利用料だけではなく、EMRの利用料までも別途発生するためです。ただし、CDHを使う場合には修正の取り込みやアップデート、起動に時間がかかるなどで人件費がその分掛かっていました。その分が削れると考えれば十分に元が取れるのではないでしょうか。

4:AMI

 また、AWSを利用する前提だと、AMI(Amazon Machine Image)※17の取り扱いにも違いがあります。AMIとはEC2インスタンスのスナップショットのようなものです。

 ※17 「アミ」と発音するようです


 例えば必要なライブラリをすべてインストールした状態のAMIを作成してそれをEC2インスタンス起動時に選択すれば、起動直後からライブラリが使える状態となっています。

 CDHはHadoopクラスタを構築する際に利用するAMIをユーザ側で自由にカスタマイズすることが可能です。事前にカスタマイズしたAMIを用意しておけば、毎回カスタマイズしたAMIを利用することができます。

 一方、EMRではAWSの指定したある特定のAMIしか利用することができませんが、このAMIもEMR側で随時更新されています※18。なお、EMRで特定のライブラリをインストールしたりHadoopの設定を変更するなどのカスタマイズを行うにはブートストラップアクションと呼ばれる仕組みを利用して起動フェーズの最後に毎回実行してあげる必要があります。ブートストラップアクションの詳細については後述します。

 ※18 Specify the Amazon EMR AMI Version - Amazon Elastic MapReduce


 こういった点を比較して、やはり修正の取り込みやバージョンアップ作業が必要ないことが決め手となり、最終的にはEMRを採用することに決めました。我々はHadoopを利用するための環境構築やバージョンアップがしたいわけではなく、有意義なパターンを見つけるためにHadoopを利用してデータ分析を行いたかったためです。EMRはそういった方にとって非常に有効なサービスではないかと筆者は考えます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。