■ はじめに
Amazon EMR について、徐々にメモっていく
目次
【1】Amazon EMR (Elastic MapReduce) 【2】EMRのアーキテクチャ 1)マスタノード 2)コアノード 3)タスクノード 注意点 【3】分散処理基盤としてのEMR 1)EMRFS (EMR File System) 【4】分散処理アプリケーション基盤としてのEMR 1)サポートされているビッグデータフレームワーク 【5】メリット / デメリット 1)メリット 2)デメリット 【6】コスト
【1】Amazon EMR (Elastic MapReduce)
* AWSの分散処理フレームワーク => ビッグデータ用フレームワーク(Hadoop/Hive/HBase/Presto)を 簡単に導入でき、大量データを分散処理してくれるAWSサービス
公式サイト
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-what-is-emr.html
https://media.amazonwebservices.com/jp/wp/AWS_Amazon_EMR_Best_Practices.pdf
boto3 API
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/emr.html
【2】EMRのアーキテクチャ
* EMR は、以下の3種類のノードで構成されている ~~~~~~~~~~~~~~~ 1)マスタノード 2)コアノード 3)タスクノード ~~~~~~~~~~~~~~~
1)マスタノード
* EMRの司令塔で、ジョブフロー全体管理 => コアノード、タスクノードにジョブを振り分ける * 1台のみ => フェールオーバー(failover)はできない => マスターノードに何らかのトラブルがあると、ジョブ全体が失敗する
2)コアノード
* データ保存領域であるHDFS(Hadoop Distributed File System)を持ち、 データを読み込みつつデータ処理を行う * 1台~
3)タスクノード
* データ処理を行う(データは持たない) => コアノードと比べて柔軟に増減可能 * 0台~
注意点
* コアノードなしでタスクノードのみで構成することは不可
【3】分散処理基盤としてのEMR
以下に分けられる ~~~~~~ 1)リソース調整 2)EMRFS (EMR File System) ~~~~~~
1)リソース調整
* 分散処理に必要なEC2の調達・破棄 * 以下の2点が重要になる
[1] 伸縮自在性
* 処理するEC2を解析開始時に調達し、 必要に応じて増減させる * デフォルト設定だと、ジョブ完了後に 自動的にリソースを解放される
[2] コスト
* 分析費用を小さくするための機能 => EMR には、スポットインスタンスのオプションがあり コストダウンを図れる
※ スポットインスタンス
* 入札価格より時価が上回った場合に利用が強制的に中断されるが そのため、通常のEC2オンデマンドより価格が大幅に安く使える * 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2017/07/26/115400
2)EMRFS (EMR File System)
* AWS S3 を HDFSのように扱える * 詳細は以下の関連記事を参照のこと
Amazon EMR ~ EMRFS ~
https://dk521123.hatenablog.com/entry/2020/11/13/145545
【4】分散処理アプリケーション基盤としてのEMR
1)サポートされているビッグデータフレームワーク
* Apache Spark * Apache Hive ... 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2019/11/25/235219
* Apache HBase ... データストア「BigTable」をベースにしたNoSQL * Apache Flink * Apache Hudi (Incubating) * Apache Pig * Presto(プレスト) ... オープンソースの分散型SQLクエリエンジン ... Athena のエンジン部分としても利用
Amazon Athena ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/06/17/173717
* Apache Phoenix ... HBaseに保存されているデータに対してACIDトランザクションを利用できる * Apache Impala ... SQL構文でインタラクティブにアドホックにクエリをかけられる etc
バージョン
EMRのバージョンによって、 Hadoop や Hive のバージョンが異なるので 使用するバージョンを確認しておいたほうがいい
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-release-6x.html
【5】メリット / デメリット
1)メリット
環境構築 / 運用(version up etc)が不要
2)デメリット
コストが掛かる
料金
https://aws.amazon.com/jp/emr/pricing/
EC2 料金 + EMR 料金がかかる
【6】コスト
* 以下のサイトから自分の使う構成を選択することにより 簡単に料金の見積もりができる
https://aws.amazon.com/jp/emr/pricing/
参考文献
https://www.atmarkit.co.jp/ait/articles/1701/01/news018_5.html
https://qiita.com/yasuzuki/items/f29d3a2db5c8b4217c9c
https://recipe.kc-cloud.jp/archives/10132
https://www.atmarkit.co.jp/ait/articles/1701/01/news018.html
https://www.atmarkit.co.jp/ait/articles/1701/01/news019.html
http://mgi.hatenablog.com/entry/2014/05/04/085148
https://japan.techrepublic.com/article/35074122.htm
関連記事
Amazon EMR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/27/175610
Amazon EMR ~ チュートリアルのすすめ ~
https://dk521123.hatenablog.com/entry/2023/07/29/000000
Amazon EMR ~IAM Role周り ~
https://dk521123.hatenablog.com/entry/2023/07/24/160124
Amazon EMR ~ ネットワーク周り ~
https://dk521123.hatenablog.com/entry/2022/05/13/155755
Amazon EMR ~ Auto scaling ~
https://dk521123.hatenablog.com/entry/2022/05/16/115229
Amazon EMR ~ boto3 編 ~
https://dk521123.hatenablog.com/entry/2020/06/24/173334
Amazon EMR ~ AWS Glueとの連携 ~
https://dk521123.hatenablog.com/entry/2020/11/12/113312
Amazon EMR ~ EMRFS ~
https://dk521123.hatenablog.com/entry/2020/11/13/145545
Amazon EMR ~ Flink / 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/07/16/000000
Amazon EMR ~ Flink / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/08/19/025641
Amazon EMR ~ Flink / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2023/08/20/231901
Amazon EMR ~ Flink / Glue Data Catalog ~
https://dk521123.hatenablog.com/entry/2023/08/18/181646
Amazon EMR ~ EMR内部 から SES で Email を送る ~
https://dk521123.hatenablog.com/entry/2021/07/09/115553
Amazon EMR ~ Log4j / CVE-2021-44228 対策 ~
https://dk521123.hatenablog.com/entry/2022/04/18/153148
Amazon EMR ~ Session Managerを設定する ~
https://dk521123.hatenablog.com/entry/2023/08/16/201948
起動中の EMR に Session Manager を使って入る
https://dk521123.hatenablog.com/entry/2022/05/11/135632
Amazon EMR に関するトラブル
https://dk521123.hatenablog.com/entry/2020/08/05/144724
Amazon EMR の クローン 時の トラブル
https://dk521123.hatenablog.com/entry/2021/08/19/113707
EMR起動時にエラー「An EC2 ClientInternalError has occurred」が表示
https://dk521123.hatenablog.com/entry/2022/04/14/141250
EMRのStep実行時にエラー「Insufficient Lake Formation permission(s) on default」が表示
https://dk521123.hatenablog.com/entry/2022/05/09/101121
EMRでINSERTを実行した際に Fail する
https://dk521123.hatenablog.com/entry/2022/05/14/001031
EMRで Auto Scaling が FAILED する
https://dk521123.hatenablog.com/entry/2022/05/18/092046
EMRのBootstrapでエラー「BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY」が表示
https://dk521123.hatenablog.com/entry/2023/08/17/002559
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/25/231235
Amazon Redshift ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/22/002139
Apache Hadoop ~ 環境設定 / Linux編 ~
https://dk521123.hatenablog.com/entry/2020/01/01/000000
AWS Glue ~ 基本編 / クローラ ~
https://dk521123.hatenablog.com/entry/2019/12/01/003455
AWS のコスト節約を考える ~ EC2編 / リザーブド・スポット etc ~
https://dk521123.hatenablog.com/entry/2017/07/26/115400
Amazon Athena ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/06/17/173717