E-MapReduce (EMR) を使用するには、適切な Hadoop クラスターを選択する必要があります。 EMR の構成を選択する際、企業でのビッグデータの使用を考慮し、総データ量、サービスの信頼性および予算を見積もります。

ビッグデータシナリオ

EMR は以下の企業ビッグデータシナリオに適用されています:

  • バッチ操作 このシナリオは高いディスク I/O スループットと高ネットワークスループットを必要としますが、リアルタイムキャパシティ要件は低くなります。 大量のデータを処理する必要があるがリアルタイム処理は必要ない場合、MapReduce、Pig および Spark を使用できます。 このシナリオは高メモリキャパシティを必要としません。 ゆえに、データシャッフリングを実行する際は CPU、メモリ、ネットワーク要求にフォーカスする必要があります。
  • アドホッククエリ データサイエンティストおよびデータアナリストはアドホッククエリを使用してデータを収集します。 このシナリオではリアルタイムクエリ、高いディスク I/O スループットとネットワークスループットが要求されます。 このシナリオでは Impala や Presto が使用できます。 このシナリオには高メモリ要件もあります。 総データ量と同時クエリを考慮する必要があります。
  • ストリームコンピューティング、高ネットワークスループットおよび計算集約型シナリオ これらのシナリオには、Flink、Spark Streaming または Storm を使用できます。
  • メッセージキュー このシナリオは高いディスク I/O スループット、ネットワークスループットが必要で、大量のメモリを消費し、ストレージは HDFS に依存しません。 したがって、EMR 内で Kafka クラスターが使用できます。 EMR クラスターは Hadoop への影響を避けるために Kafka クラスターと Hadoop クラスターに分割されます。
  • コールドバックアップ このシナリオは高い I/O スループットまたはコンピューティングスループットを要求せず、低コストです。 EMR d1 インスタンスをコールドバックアップに使用することを推奨します。 d1 インスタンスのストレージコストは 0.03 元 / 月 / GB です。

EMR インスタンス

3 種類のインスタンスで構成された EMR クラスター: マスターインスタンス、コアインスタンス、タスクインスタンス

EMR ストレージとしてウルトラディスク、SSD ディスクおよびローカルディスクを選択できます。 異なるディスクのパフォーマンスは、SSD ディスク > ローカルディスク > ウルトラディスク、の順です。

EMR 基盤ストレージは OSS (標準 OSS のみ) と HDFS をサポートします。 OSS は HDFS よりも高いデータ可用性を持っています。 HDFS のデータ可用性がクラウドディスクまたはローカルディスクストレージの信頼性に依存するのに対し、OSS のデータ可用性は 99.99999999% です。

ストレージ価格は以下のとおりです:

  • ローカルディスク付きインスタンス:0.003 USD/GB / 月
  • OSS 標準ストレージ:0.02 USD/GB / 月
  • ウルトラディスクストレージ:0.05 USD/GB / 月
  • SSD ディスクストレージ:0.143 USD/GB / 月

EMR 設定の選択

  • マスターインスタンス設定の選択

    • マスターインスタンスは、NameNode や ResourceManager のような Hadoop のマスタープロセスをデプロイするために使用されます。

    • 本番クラスターの高可用性を有効化することを推奨します。 HDFS、YARN、Hive または HBase のような EMR コンポーネントに高可用性は利用可能です。 クラスター作成時の 「クラスター設定」 ステップで高可用性を有効化することを推奨します。 EMR クラスター作成時に高可用性が有効化されていない場合、後から有効化することはできません。

    • マスターインスタンスは HDFS メタデータとコンポーネントログファイルを格納するために使用されます。 それらは低いディスク I/O 要求を持つ計算集約型です。 HDFS メタデータはメモリに格納されます。 最小推奨メモリサイズはファイル数に基づいて 16 GB です。

  • コアインスタンス設定の選択

    • コアインスタンスはデータの格納、コンピューティングタスクおよび DataNode や NodeManager のようなプロセスの実行に使用されます。

    • HDFS (3 つのバックアップ) に格納された総データ量が 60 TB を超えると、ローカルディスク付きのインスタンス (ECS d1 インスタンスおよび ECS d1ne インスタンス) を使用することを推奨します。 ローカルディスク容量は以下のとおり計算されます:(CPU cores 数/2) * 5.5 TB * インスタンス数 たとえば、4 つの 8 コア d1 インスタンスを購入する場合、ローカルディスク容量は 8/2 * 5.5 * 4=88 TB となります。 HDFS は 3 つのバックアップが必要です。 したがって、少なくともローカルディスクを使用する 3 つのインスタンスを購入する必要があります。 データ信頼性とディスクリカバリのためには少なくとも 4 インスタンスを購入することを推奨します。

    • HDFS に格納された総データ量が 60 TB より少ない場合、ウルトラディスクまたは SSD ディスクを使用できます。

  • タスクインスタンス設定の選択

    • タスクインスタンスはコアインスタンスの CPU とメモリが十分なコンピューティング容量を持たない場合に使用されます。 タスクインスタンスはデータの格納や DataNode の実行を行いません。 CPU と メモリ要件に基づいてインスタンスの数を見積もることができます。

EMR ライフサイクル

EMR は素早いクラスターのスケールアップを可能にするオートスケーリングをサポートします。 クラスターノードの設定を柔軟に調整できECS インスタンスの設定をアップグレードまたはダウングレードできます。

ゾーンの選択

EMR および事業システムを同一ゾーンおよび同一リージョンにデプロイすることを推奨します。