DEA / ドメイン1 データの取り込みと変換

重要な内容

Amazon EMR

は、、Hive、Presto/、HBase などのオープンソースのビッグデータのフレームワークを、AWS 上で手早く動かすマネージドのサービスです。 のクラスター、、 の3つの動かし方があり、数 TB〜PB の変換やログの処理を、細かい調整をしながら実行できます。DEA では、ノードの種類と、EMR Serverless との選び分け、 と の使い分け、 との選び分けが出題されます。

Point
  • EMR は以前 Elastic MapReduce と呼ばれていました。MapReduce は分散処理の古典的な方式です。
  • HDFS = Hadoop Distributed File System は、クラスターのノードのディスクにデータを分散して置くファイルシステムです。
  • EMRFS は、EMR から S3 を HDFS のように読み書きする仕組みです (s3:// で指定)。
  • 和訳

概要

デプロイの方式内容向くケース
on EC2 インスタンスのクラスターを作る。インスタンスの種類や設定を細かく選べる長時間動く大規模な処理、細かい調整、HBase など特定のアプリケーション
EMR Serverless や Hive のジョブを投げるだけで、サービスが必要な資源を用意して終われば解放するクラスター管理をしたくない、ジョブ単位で使う
EMR on 既存の Amazon EKS クラスターの上で Spark のジョブを動かすKubernetes で他のアプリケーションと資源を共有したい
概要の図 ステップの投入 S3 の生データ EMRSpark・Hive・Trino Glue Data CatalogHive メタストア S3 Parquet Redshift Step Functions・MWAA

試験では、 (で運用最小) と EMR (オープンソースの幅広さと調整の自由度) のどちらを選ぶか、EMR ならどの方式とどのインスタンスの買い方にするかを判断します。


主要技術

①ノードの種類 (EMR on EC2) ⚠️ 頻出

ノード役割スポットの適否
プライマリノードクラスターの管理、タスクの割り当て—向かない (落ちるとクラスターが止まる)
コアノードタスクの実行と HDFS へのデータの保存あり慎重に (落ちると HDFS のデータを失うおそれ)
タスクノードタスクの実行だけなし向く (落ちてもデータを失わない)

プライマリノードを3台にする構成 (複数プライマリノード) にすると、プライマリノードの障害でクラスターが止まりにくくなります。

⚠️ 頻出: 「コストを下げるためにを使いたい。処理が中断してもデータを失いたくない」は、タスクノードをスポット、プライマリとコアを (またはリザーブド) にします。


②インスタンスグループとインスタンスフリート

方式内容向くケース
インスタンスグループノードの種類ごとに1つのを指定する単純な構成
インスタンスフリートノードの種類ごとに複数のインスタンスタイプと、とスポットの目標容量を指定する。割り当て戦略で、空いているスポットのプールから選ぶスポットの中断に強くしたい、容量を確保しやすくしたい

スポットの容量が足りないときにオンデマンドへ切り替える設定もでき、スポットを多用するクラスターではインスタンスフリートが向きます。


③スケーリングとクラスターのライフサイクル

機能内容
マネージドスケーリング負荷に合わせて、指定した最小・最大の範囲でノード数を自動調整する
一時的なクラスター (transient)ジョブ (ステップ) を流し、終わったらクラスターを自動で終了する
長時間稼働のクラスター対話的な分析や常時の処理のために動かし続ける
自動終了 (アイドルタイムアウト)一定時間アイドルならクラスターを終了し、消し忘れの費用を防ぐ
ステップクラスターへ投入する作業の単位 ( のジョブ、Hive のスクリプト)。 から .sync で完了を待てる

データを に置いておけば、クラスターを終了してもデータは残ります。処理のたびにクラスターを作って捨てる一時的なクラスターは、コストの点で有利です。


④HDFS と EMRFS (S3) ⚠️ 頻出

保管先特徴向くケース
(コアノードの や)速いが、クラスターを終了すると消える処理の途中の一時データ、繰り返し読む中間結果
()クラスターと独立して残る。複数のクラスターや ・ と共有できる入力と出力の永続的な保管

S3 は強い書き込み後の読み取り整合性を持つため、以前の EMRFS の整合性ビューは不要です。コアノードの EBS ボリュームは、HDFS や一時データのための容量として使います。

⚠️ 頻出: 「クラスターを終了してもデータを残し、他のサービスからも使いたい」は S3 (EMRFS) に置きます。HDFS はクラスターとともに消えます。


⑤アプリケーションとメタストア

アプリケーション用途
バッチの変換、、ストリーミング (Structured Streaming)
Apache Hive (HiveQL) による大規模なバッチ処理
Presto / 対話的な SQL クエリ
Apache HBase大規模なキーと値の低遅延アクセス
/ / 上のテーブルの更新・削除

テーブルの定義 (メタストア) は、 Data Catalog を として使うと、クラスターを作り直しても定義が残り、 や とも共有できます。既存の Hive メタストアを使い続けたい場合は、 や の外部メタストアにします。


⑥EMR Serverless

項目内容
アプリケーション か Hive と、 のリリースバージョンを指定して作る
ジョブの実行ジョブを投げると、必要なワーカーを用意し、段階ごとに増減し、終われば解放する
事前初期化容量ワーカーを温めておき、ジョブを数秒で開始する (対話的な処理や時間に厳しいジョブ)
上限アプリケーションの最大容量を決めて、費用を抑える
自動の開始・停止アイドルになるとアプリケーションを止め、費用を抑える

⑦大量のログの処理とコスト

数 TB のログを毎日処理するような用途では、次の組み合わせでコストを抑えます。

手段効果
一時的なクラスター + 必要な時間だけ動かす
タスクノードにスポット、インスタンスフリート計算の単価を下げる
Graviton (Arm) のインスタンス価格性能比を上げる
マネージドスケーリングピーク以外の時間のノードを減らす
列指向の形式とパーティション読み取り量を減らす
Serverlessクラスターの待機時間の費用をなくす

⑧Glue との選び分け ⚠️ 頻出

観点
運用。クラスターの概念がない ならクラスターを管理。Serverless なら管理不要
フレームワーク (と Python shell)Spark、Hive、Presto/、HBase、 など
調整の自由度ワーカーの種類と数が中心、Spark の設定、ブートストラップアクションなど細かく
コストの工夫Flex、オートスケーリングスポット、リザーブド、Graviton、一時的なクラスター
向くケース新規の 、運用最小既存の Hadoop/Spark の移行、非常に大規模、特殊なフレームワーク

試験対策

①判断マトリクス

問題文のキーワード選ぶ構成
の Hadoop/ を最小の変更で移行 on
Spark のジョブを、クラスター管理なしでEMR Serverless (または )
既存の で Spark を動かすEMR on EKS
スポットでコスト削減、データを失わないタスクノードをスポット
スポットの中断に強く、容量を確保しやすくインスタンスフリート
ジョブのたびに作って終われば消す一時的なクラスター +
消し忘れのクラスターの費用を防ぐ自動終了 (アイドルタイムアウト)
クラスターを消してもテーブル定義を残すGlue Data Catalog を に
対話的な Presto/ (または )
ジョブを数秒で開始したい (Serverless)事前初期化容量
プライマリノードの障害で止めたくない複数プライマリノード

②よくある誤答

  • コアノードやプライマリノードをスポットにすること。中断で のデータやクラスター全体を失うおそれがあります。
  • 永続的なデータを HDFS だけに置くこと。クラスターの終了で消えます。
  • 新規の小さな に on を選ぶこと。運用負荷の点で や EMR Serverless が優れます。
  • の整合性ビューを今も必要と考えること。 は強い整合性を持ちます。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください