最新情報は何ですか? - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

最新情報は何ですか?

このトピックでは、Amazon EMR 6.x シリーズおよび 5.x シリーズの機能と解決された問題について説明します。これらのリリースノートは、リリース 6.4.0 タブおよびリリース 5.33.0 タブこのリリースのアプリケーションバージョン、コンポーネントバージョン、および利用可能な設定分類も確認できます。

Amazon EMR リリースノートの RSS フィードを購読するhttps://docs.aws.amazon.com/emr/latest/ReleaseGuide/amazon-emr-release-notes.rssを使用して、新しい Amazon EMR リリースバージョンが利用可能になったときに更新を受け取ることができます。

リリースバージョン 4.2.0 にまでさかのぼる、以前のバージョンのリリースノートについては、「Amazon EMR の新しい履歴」を参照してください。

注記

以前の 25 の Amazon EMR リリースバージョンではAWSAmazon S3 へのリクエストを認証するための署名バージョン 4。の使用は、AWS署名バージョン 2 は段階的に廃止され、2020 年 6 月 24 日以降に作成された新しい S3 バケットは、署名バージョン 2 の署名付きリクエストをサポートしません。既存のバケットは引き続き、署名バージョン 2 をサポートします。署名バージョン 4 をサポートする Amazon EMR リリースに移行することをお勧めします。これにより、新しい S3 バケットに引き続きアクセスでき、ワークロードが中断される可能性がなくなります。

署名バージョン 4 をサポートする次の EMR リリースが入手可能になりました。emr-4.7.4、emr-4.8.5、emr-4.9.6、emr-4.10.1、emr-5.1.1、emr-5.2.3、emr-5.3.2、emr-5.4.1、emr-5.5.4、emr-5.6.1、emr-5.7.1、emr-5.8.3、emr-5.9.1、emr-5.10.1、emr-5.11.4、emr-5.12.3、emr-5.13.1、emr-5.14.2、emr-5.15.1、emr-5.16.1、emr-5.17.2、emr-5.18.1、emr-5.19.1、emr-5.20.1、and emr-5.21.2。EMR バージョン 5.22.0 以降は、すでに署名バージョン 4 をサポートしています。

Apache Spark、Apache Hive、Presto などの Amazon EMR アプリケーションを使用している場合は、署名バージョン 4 を使用するようにアプリケーションコードを変更する必要はありません。Amazon EMR に含まれていないカスタムアプリケーションを使用している場合は、署名バージョン 4 を使用するようにコードを更新することが必要になる可能性があります。必要な更新の詳細については、「署名バージョン 2 から署名バージョン 4 への移行」を参照してください。

リリース 6.4.0(Amazon EMR 6.x シリーズの最新バージョン)

新しい Amazon EMR リリースバージョンは、一定期間にわたって複数の異なるリージョンで利用可能になり、最初のリージョンは初期リリース日になります。この期間中、お客様のリージョンでは最新のリリースバージョンをご利用いただけない場合があります。

次のリリースノートには、Amazon EMR リリースバージョン 6.4.0 に関する情報が含まれています。変更点は、6.3.0 に関連するものではありません。

初回リリース: 2021 年 9 月 20 日

サポートされているアプリケーション

  • AWS SDK for Javaバージョン 1.12.31

  • CloudWatch シンクバージョン 2.2.0

  • DynamoDB コネクターのバージョン 4.16.0

  • EMRFS バージョン 2.47.0

  • Amazon EMR グッズバージョン 3.2.0

  • Amazon EMR Kinesis コネクターのバージョン 3.5.0

  • Amazon EMR レコードサーバーバージョン 2.1.0

  • Amazon EMR スクリプトバージョン 2.5.0

  • Flink バージョン 1.13.1

  • Ganglia バージョン 3.7.2

  • AWSGlue Hive メタストアクライアントバージョン 3.3.0

  • Hadoop バージョン 3.2.1-amzn-4

  • HBase バージョン 2.4.4-amzn-0

  • HBase オペレータツール 1.1.0

  • HCatalog バージョン 3.1.2-amzn-5

  • Hive バージョン 3.1.2-amzn-5

  • Hudi バージョン 0.8.0-amzn-0

  • Hue バージョン 4.0

  • Java JDKバージョンコレット-8.302.08.1(ビルド1.8.0_302-b08)

  • JupyterHub バージョン 1.4.1

  • Livy バージョン 0.7.1-incubating

  • MXNet バージョン 1.8.0

  • Oozie バージョン 5.2.1

  • フェニックスバージョン 5.1.2

  • Pig バージョン 0.17.0

  • Presto バージョン 0.254.1-amzn-0

  • トリノバージョン 359

  • Apache Ranger KMS (マルチマスター透過暗号化) バージョン 2.0.0

  • レンジャープラグイン 2.0.1-amzn-0

  • レンジャー-S3-プラグイン 1.2.0

  • SageMaker Spark SDK バージョン 1.4.1

  • Scala version 2.12.10 (OpenJDK 64-bit Server VM, Java 1.8.0_282)

  • Spark バージョン 3.1.2-amzn-0

  • Spark 急流 0.4.1

  • Sqoop バージョン 1.4.7

  • TensorFlow バージョン 2.4.1

  • Tez バージョン 0.9.2

  • Zeppelin バージョン 0.9.0

  • Zookeeper バージョン 3.5.7

  • コネクターおよびドライバー: DynamoDB Connector 4.16.0

新機能

  • 「テーブルの変更」(Alter Table) を使用する場合、パーティションの場所はテーブルの場所の子ディレクトリである必要があります。現在、Amazon EMR では、パーティションの場所がテーブルの場所と異なるパーティションへのデータの挿入はサポートされていません。

  • PrestoSQL はTrino に名称変更。

  • Hive: LIMIT句での単純なSELECTクエリの実行は、LIMIT句で述べたレコード数がフェッチされるとすぐにクエリの実行を停止することによって加速されます。単純な SELECT クエリは GROUP BY/ORDER by 句を持たないクエリや、レデューサーステージを持たないクエリです。例えば、 。SELECT * from <TABLE> WHERE <Condition> LIMIT <Number>

Hudi 同時実行制御

  • Hudi は Optimistic Concurrency Control (OCC) をサポートするようになりました。OCC は、UPSERT や INSERT などの書き込み操作で活用して、複数のライターから同じ Hudi テーブルへの変更を許可できます。これはファイルレベルのOCCなので、変更が競合しない場合、任意の2つのコミット(またはライター)は同じテーブルに書き込むことができます。詳細については、「」を参照してください。Hudi コミュニティブログ

  • Amazon EMR クラスターには Zookeeper がインストールされており、OCC のロックプロバイダーとして活用できます。この機能を使用しやすくするため、Amazon EMR クラスターには次のプロパティが事前設定されています。

    hoodie.write.lock.provider=org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider hoodie.write.lock.zookeeper.url=<EMR Zookeeper URL> hoodie.write.lock.zookeeper.port=<EMR Zookeeper Port> hoodie.write.lock.zookeeper.base_path=/hudi

    OCC を有効にするには、Hudi ジョブオプションを使用するか、Amazon EMR 設定 API を使用してクラスターレベルで以下のプロパティを設定する必要があります。

    hoodie.write.concurrency.mode=optimistic_concurrency_control hoodie.cleaner.policy.failed.writes=LAZY (Performs cleaning of failed writes lazily instead of inline with every write) hoodie.write.lock.zookeeper.lock_key=<Key to uniquely identify the Hudi table> (Table Name is a good option)

Hudi モニタリング: Hudi メトリックスをレポートする Amazon CloudWatch の統合

  • Amazon EMR は、Amazon CloudWatch への Hudi メトリックスのパブリッシュをサポートしています。これは、次の必要な構成を設定することによって有効になります。

    hoodie.metrics.on=true hoodie.metrics.reporter.type=CLOUDWATCH
  • 次に、変更可能なオプションの Hudi 設定を示します。

    設定 説明

    hoodie.metrics.cloudwatch.レポート.period.秒

    Amazon CloudWatch にメトリックスをレポートする頻度(秒単位)

    デフォルト値は 60 です。これは、Amazon CloudWatch が提供するデフォルトの 1 分間の解像度で問題ありません。

    hoodie.metrics.cloudwatch.metric.

    各メトリックス名に追加されるプレフィックス

    デフォルト値は空です(接頭辞なし)

    hoodie.metrics.cloudwatch.

    メトリックスがパブリッシュされる Amazon CloudWatch 名前空間

    デフォルト値は Hudi

    パーカー.Metrics.cloudWatch.maxDataumserRequest

    Amazon CloudWatch への 1 つのリクエストに含めるデータムの最大数

    デフォルト値は 20 です。これは Amazon CloudWatch のデフォルトと同じです

Amazon EMR Hudi 設定のサポートおよび改善

  • お客様は、EMR構成APIと再構成機能を活用して、Hudi構成をクラスタレベルで構成できるようになりました。新しいファイルベースの構成サポートは、Spark、ハイブなどのような他のアプリケーションの行に沿って/ etc/hudi/conf/hudi-defaults.confを介して導入されました EMR は、ユーザーエクスペリエンスを向上させるためにいくつかのデフォルトを設定します。

    hoodie.datasource.hive_sync.jdbcurl がクラスターの Hive サーバーの URL に設定され、指定する必要がなくなりました。これは、以前に Amazon EMR マスター IP を指定する必要があった Spark クラスターモードでジョブを実行するときに特に便利です。

    — HBase 固有の構成。Hudi で HBase インデックスを使うのに便利です。

    — 同時実行制御の下で説明されているように、Zookeeper ロックプロバイダ固有の構成。これにより、楽観的同時実行制御 (OCC) の使用が簡単になります。

  • パスする必要がある構成の数を減らし、可能な場合は自動的に推測するために、追加の変更が導入されました。

    partitionBy キーワードは、パーティション列を指定するために使用できます。

    — Hive Sync を有効にする場合、HIVE_TABLE_OPT_KEY, HIVE_PARTITION_FIELDS_OPT_KEY, HIVE_PARTITION_EXTRACTOR_CLASS_OPT_KEY。これらの値は、Hudi テーブル名とパーティションフィールドから推測できます。

    KEYGENERATOR_CLASS_OPT_KEYは渡すために必須ではなく、より単純なケースから推論することができますSimpleKeyGeneratorおよびComplexKeyGenerator

Hudi Caveats

  • Hudi は、読み取り (MOR) テーブルおよびブートストラップテーブルの Hive でのベクトル化実行をサポートしていません。たとえば、count(*)は、Hudi リアルタイムテーブルで失敗します。hive.vectorized.execution.enabledを true に設定します。回避策として、ベクトル化読み込みを無効にするには、hive.vectorized.execution.enabledfalse

  • マルチライターのサポートは、Hudi ブートストラップ機能と互換性がありません。

  • Flink Streamer と Flink SQL は、このリリースの実験的な機能です。これらの機能は、実稼働環境での使用はお勧めしません。

変更、機能強化、および解決された問題

  • Amazon Linux リポジトリでは、HTTPS がデフォルトで有効になりました。Amazon S3 VPCE ポリシーを使用して特定のバケットへのアクセスを制限する場合は、新しい Amazon Linux バケット ARN を追加する必要があります。arn:aws:s3:::amazonlinux-2-repos-$region/*をポリシーに追加します ($regionエンドポイントがあるリージョンに置き換えます)。詳細については、このトピックの「」を参照してください。AWSディスカッションフォーラム。発表: Amazon Linux 2 では、パッケージリポジトリへの接続中に HTTPS を使用する機能がサポートされるようになりました

  • Hive: 書き込みクエリのパフォーマンスは、最後のジョブで HDFS 上のスクラッチディレクトリを使用可能にすることによって改善されます。最終ジョブの一時データは Amazon S3 ではなく HDFS に書き込まれ、データは Amazon S3 デバイス間ではなく HDFS から最終テーブルロケーション(Amazon S3)に移動されるため、パフォーマンスが向上します。

  • Hive: Glue メタストアのパーティションプルーニングにより、クエリのコンパイル時間が最大 2.5 倍に改善されました。

  • デフォルトでは、組み込み UDF が Hive によって Hive メタストアサーバーに渡されると、Glue は限られた式演算子しかサポートしないため、組み込み UDF のサブセットのみがGlue メタストアに渡されます。設定した場合hive.glue.partition.pruning.client=true場合、すべてのパーティションプルーニングはクライアント側で行われます。設定した場合hive.glue.partition.pruning.server=true場合、すべてのパーティションのプルーニングはサーバー側で行われます。

リリース 5.33.0(Amazon EMR 5.x シリーズの最新バージョン)

新しい Amazon EMR リリースバージョンは、一定期間にわたって複数の異なるリージョンで利用可能になり、最初のリージョンは初期リリース日になります。この期間中、お客様のリージョンでは最新のリリースバージョンをご利用いただけない場合があります。

次のリリースノートには、Amazon EMR リリースバージョン 5.33.0 に関する情報が含まれています。5.32.0 からの変更が含まれています。

初回リリース: 2021 年 4 月 19 日

最終更新日: 2021 年 8 月 9 日

Upgrades

  • Amazon Glue コネクタをバージョン 1.15.0 にアップグレードしました

  • バージョン 1.11.970 にアップグレードしました

  • EMRFS をバージョン 2.46.0 にアップグレードしました

  • EMR Goodies をバージョン 2.14.0 にアップグレードしました

  • EMR Record Server をバージョン 1.9.0 にアップグレードしました

  • EMR S3 Dist CP をバージョン 2.18.0 にアップグレードしました

  • EMR Secret Agent をバージョン 1.8.0 にアップグレードしました

  • Flink をバージョン 1.12.1 にアップグレードしました

  • Hadoop をバージョン 2.10.1-amzn-1 にアップグレードしました

  • Hive をバージョン 2.3.7-amzn-4 にアップグレードしました

  • Hudi をバージョン 0.7.0 にアップグレードしました

  • Hue をバージョン 4.9.0 にアップグレードしました

  • OpenCV をバージョン 4.5.0 にアップグレードしました

  • Presto をバージョン 0.245.1-amzn-0 にアップグレードしました

  • R をバージョン 4.0.2 にアップグレードしました

  • Spark をバージョン 2.4.7-amzn-1 にアップグレードしました

  • TensorFlow をバージョン 2.4.1 にアップグレードしました

  • Zeppelin をバージョン 0.9.0 にアップグレードしました

変更、機能強化、および解決された問題

  • Spark 挿入クエリの Hive メタストアからパーティションの場所を取得するときに、Spark ランタイムが高速になりました。

  • アップグレードされたコンポーネントのバージョン。コンポーネントのバージョンのリストについては、」」」」を参照してください。Amazon EMR リリースについてこのガイドの「」を参照してください。

  • をインストールしましたAWS新しいクラスターごとに Java SDK バンドル。これは、個々のコンポーネントjarではなく、すべてのサービスSDKとその依存関係を含む単一のjarです。詳細については、「」を参照してください。Java SDK バンドル依存関係

  • 以前の Amazon EMR リリースで管理されたスケーリングの問題が修正され、アプリケーションの失敗率が大幅に削減されるよう改善されました。

新機能

  • Amazon EMR は、共有データレイクへのアクセスを簡単に管理できる Amazon S3 の機能である Amazon S3 アクセスポイントをサポートしています。Amazon S3 アクセスポイントのエイリアスを使用すると、Amazon EMR でのデータアクセスを大規模に簡素化できます。Amazon S3 アクセスポイントは、Amazon EMR のすべてのバージョンで、追加料金なしで使用できます。AWSAmazon EMR が利用可能なリージョンについて説明します。Amazon S3 アクセスポイントとアクセスポイントエイリアスの詳細については、「」を参照してください。アクセスポイントでのバケット形式のエイリアスの使用Amazon S3 ユーザーガイド

  • Amazon EMR-5.33 は、新しい Amazon EC2 インスタンスタイプをサポートしている。c5a、c5ad、c6gn、c6gd、m6gd、d3、d3en、m5zn、r5b、r6gd。「サポートされるインスタンスタイプ」を参照してください。

既知の問題

  • 古いAL2では、「最大オープンファイル」の制限を下回ります。Amazon EMR リリース:emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0、および emr-6.2.0 は、Amazon Linux 2 (AL2) の古いバージョンに基づいています。これは、EMR クラスターがデフォルトの AMI で作成されるときに「最大オープンファイル」の下限設定を持ちます。Spark ジョブを送信するときに、開くファイルの制限が小さくなると、「開いているファイルが多すぎます」というエラーが発生します。影響を受ける EMR リリースでは、Amazon EMR のデフォルト AMI の「最大オープンファイル」に対するデフォルトの ulimit 設定は 4096 です。これは、最新の Amazon Linux 2 AMI のファイル制限の 65536 よりも下回っています。Spark ドライバとエグゼキュータが 4096 を超えるファイルを開こうとすると、「最大オープンファイル」の下限設定により、Spark ジョブが失敗します。この問題を解決するために、Amazon EMR には、クラスターの作成時に ulimit 設定を調整するブートストラップアクション (BA) スクリプトがあります。Amazon EMR リリース 6.3.0 および 5.33.0 には、「最大オープンファイル」設定がより高い永続的な修正が含まれます。

    この問題に対する次の回避策では、インスタンスコントローラの ulimit を最大 65536 ファイルに明示的に設定できます。

    コマンドラインからulimit を明示的に設定するには

    1. 編集/etc/systemd/system/instance-controller.serviceをクリックして、サービスセクションに次のパラメータを追加します。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. InstanceControllerを再起動する

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    ブートストラップアクション(BA)を使用してulimitを設定する

    ブートストラップアクション (BA) スクリプトを使用して、クラスターの作成時にインスタンスコントローラの ulimit を 65536 ファイルに設定することもできます。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 重要

    Amazon Linux または Amazon Linux 2 AMI(Amazon Linux マシンイメージ)を実行している Amazon EMR クラスターは、デフォルトの Amazon Linux 動作を使用し、再起動を必要とする重要かつ重要なカーネルアップデートを自動的にダウンロードしてインストールしません。これは、デフォルトの Amazon Linux AMI を実行している他の Amazon EC2 インスタンスと同じ動作です。Amazon EMR バージョンのリリース後に再起動が必要な新しい Amazon Linux ソフトウェアアップデート(カーネル、NVIDIA、CUDA アップデートなど)が利用可能になった場合、デフォルトの AMI を実行する Amazon EMR クラスターインスタンスは、これらのアップデートを自動的にダウンロードしてインストールしません。カーネルの更新を取得するには、Amazon EMR AMI をカスタマイズしました最新の Amazon Linux AMI を使用します。

  • セキュリティ設定を作成するコンソールサポート。セキュリティ設定を作成するには、AWSRanger 統合オプションは、GovCloud リージョンでは現在サポートされていません。セキュリティ設定は、CLI を使用して行うことができます。「」を参照してください。EMR セキュリティ構成の作成Amazon EMR マネジメントガイド

  • スコープ付き管理ポリシー:整列するにはAWSベストプラクティスとして、Amazon EMR では、非推奨となるポリシーの代替として v2 EMR スコープのデフォルト管理ポリシーが導入されています。「」を参照してください。Amazon EMR 管理ポリシー