S-JIS[2013-06-15/2014-01-25] 変更履歴

Amazon EMR

EMRは、AWSHadoopを実行できるサービス。


概要

EMR(Elastic MapReduce)は、Hadoopを実行できるサービス。

EMRでは、1つのHadoopクラスターをEMRインスタンスと呼ぶ。
EMRインスタンスはEC2インスタンスを何台も使ってHadoopクラスターを組む。

使用する際にEMRインスタンスを起動し、使い終わったら削除するのが基本的な使い方。
(使うときだけ大量のサーバーを使用する、まさにクラウドらしいサービス)
データは(HDFS上に永続的に保存するのではなく、)S3から読み込み、S3上に保存するのが基本。

したがって、NameNodeの冗長性はEMRでは必要ない。
(物理サーバーのHadoopクラスターの場合、NameNodeをずっと起動し続けている(あるいは毎回同じサーバーを使う)から故障の考慮をする必要があるが、
 EMRは毎回新たに作り直すので壊れる可能性は低いし、壊れたとしても別のEMRインスタンスを起動すればよい)
(そういう意味では、DataNodeの冗長性もあまり必要なさそう。並列で処理する為にデータを多重化する(同じデータを複数のDataNodeに置く)意味はあるが)


タイムゾーンの設定

EMRを構成するEC2インスタンス(Amazon Linux?)では、タイムゾーンがデフォルト(UTC)になっている。[2014-01-25]

EMRのマスターノード上でdateコマンドを日本時間で使いたい場合は/etc/localtimeを設定しておく。
(参考:tetsuya_odakaさんのAmazon Elastic MapReduceを使う(その3:コマンドラインツールでBootStrapActionを動かす)

ただし、/etc/localtimeはJavaには効かないようなので、Javaアプリでログを日本時間で出力したい場合は環境変数TZも(JST-9に)設定しておく必要がある。
Asakusaアプリケーションの場合は、ASAKUSA_HOME一式をマスターノードに配置し、ASAKUSA_HOME/yaess/conf/env.shに「export TZ=JST-9」を追加しておけば、YAESSのログは日本時間で出力されるようになる)


AWSへ戻る / 技術メモへ戻る
メールの送信先:ひしだま