すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:EMRにおけるSparkの拡張機能

最終更新日:Jan 11, 2025

Alibaba Cloud E-MapReduce (EMR)は、Alibaba Cloud Elastic Compute Service (ECS)インスタンス上で動作し、オープンソースのApache HadoopおよびApache Sparkをベースとした拡張機能を提供します。このトピックでは、EMRにおけるSparkの拡張機能について説明します。

背景情報

EMRではオープンソースコンポーネントが使用されています。新しいEMRバージョンは、オープンソースコンポーネントの更新とともにリリースされます。EMRは、Alibaba Cloud上でオープンソースコンポーネント向けの拡張デプロイ環境を提供します。

拡張機能

次の表に、EMRにおけるSparkの拡張機能を示します。

EMR V5.Xシリーズ

EMRバージョン

Sparkバージョン

拡張機能

EMR V5.17.0

Spark 3.4.2

Spark 3が3.4.2に更新されました。

EMR V5.16.0

Spark 3.3.1

Commons Textライブラリの脆弱性が修正されました。

EMR V5.15.1

Spark 3.3.1

jdo に関連する設定が [hive-site.xml] 設定ファイルから削除されました。

EMR V5.12.1

Spark 3.3.1

  • デフォルトでは、Spark History Serverのデータの保存にOSS-HDFSが使用されます。

  • Spark3 Native Engineのデータの保存にOSSまたはOSS-HDFSが使用されます。

EMR V5.10.0

Spark 3.3.1

Sparkが3.3.1に更新されました。

EMR V5.9.0

Spark 3.3.0

  • Sparkが3.3に更新されました。

  • Kerberos認証がサポートされています。

EMR V5.8.0

Spark 3.2.1

ワンクリックでLDAP認証を有効化できます。

EMR V5.6.0

Spark 3.2.1

Sparkが3.2.1に更新されました。

EMR V5.5.0

Spark 3.2.0

  • COUNT DISTINCT関数でIF式を使用できるようになり、COUNT DISTINCT関数のCASE WHEN構文が最適化されました。

    この機能を使用するには、spark.sql.optimizer.rewriteConditionalDistinctAggregates をtrueに設定します。

  • シャッフルハッシュ結合からソートマージ結合へのフォールバックがサポートされています。

    この機能を使用するには、spark.sql.join.preferSortMergeJoin をfalseに設定し、spark.sql.join.enableShuffledHashJoinFallback をtrueに設定します。

  • 非動的パーティションにおける小規模ファイルの自動マージがサポートされています。

    この機能を使用するには、spark.sql.adaptive.merge.output.small.files.enabled をtrueに設定します。

  • GROUPING SETS句またはDISTINCT関数が使用されるシナリオでの並行処理を自動的に調整できます。

    この機能を使用するには、spark.sql.execution.optimizeExpand をtrueに設定します。

  • Hive on Sparkが最適化されました。

  • タイムトラベル機能の構文がサポートされています。

  • SparkがJindoSDKに適合されました。

EMR V5.4.0

Spark 3.1.2

  • Sparkが3.1.2に更新されました。

  • Spark 3.xでは、Spark SQLのDistinct計算パフォーマンスが最適化されています。この最適化機能は、集計演算子に複数の count(distinct case ... when ...) メソッドが含まれている場合にトリガーされます。

  • Adaptive Query Execution (AQE)に必要な統計情報の一部が欠落している場合に返される、配列インデックスの範囲外エラーが修正されました。

  • 特定のシナリオにおけるAQEとデータキャッシングに関連するエラーが修正されました。

EMR V5.3.0

Spark 3.1.1

SparkとDelta Lakeの非互換性の問題が修正されました。

EMR V5.2.1

Spark 3.1.1

重要

EMR V5.2.1では、Spark (3.1.1)とKudu (1.11.1)は互換性がありません。

  • Delta LakeとHudiがサポートされています。

  • Remote Shuffle Serviceがサポートされています。

  • Livyがサポートされています。

  • EMRコンソールで、Sparkサービスの [設定] タブの [spark-defaults] タブにあるパラメーター名が最適化されました。

  • コストベースの最適化(CBO)、動的パーティションプルーニング、およびZオーダー機能が最適化されました。これらの機能のパフォーマンスは、Spark 3よりも 50 % 向上しています。

  • Log Service、DataHub、およびMessage Queue for Apache RocketMQをデータソースとして使用できます。

EMR V4.Xシリーズ

EMRバージョン

Sparkバージョン

拡張機能

EMR V4.10.0

Spark 2.4.8

  • Sparkが2.4.8に更新されました。

  • 一部のシナリオで適応実行が有効にならない問題が修正されました。

  • SparkとHiveで統計集計関数の使用方法が異なる問題が修正されました。

  • SparkがHive ORCテーブルから CHAR 型の有効なデータを読み取れない問題が修正されました。

  • Thrift Serverのデフォルト設定が最適化されました。

  • EMRコンソールで、Sparkサービスの[設定]タブの [spark-defaults] タブにあるパラメーター名が最適化されました。

  • Hive on Sparkが最適化されました。

  • Adaptive Query Execution (AQE)に必要な統計情報の一部が欠落している場合に返される、配列インデックスの範囲外エラーが修正されました。

  • 特定のシナリオにおけるAQEとデータキャッシングに関連するエラーが修正されました。

  • 設定が無効なため、Log4j Metrics Appenderが削除されました。

  • SparkContextの起動時に発生するヌルポインター例外が修正されました。

  • データ圧縮アルゴリズムZstandardがサポートされています。

EMR V4.9.0

Spark 2.4.7

  • 適応実行が有効にならない問題が修正されました。

  • SparkとHiveで統計集計関数の使用方法が異なる問題が修正されました。

  • SparkがCHAR型の有効なデータを読み取れない問題が修正されました。

EMR V4.8.0

Spark 2.4.7

  • いくつかのデフォルト設定が最適化されました。

  • パフォーマンスが最適化されました。ウィンドウベースのtop-kクエリをプッシュダウンできます。

  • CSVまたはJSON形式のHiveテーブルとのデータの読み書き機能が強化されました。

  • ANALYZEステートメントでテーブルのすべての列名を省略できます。

  • クリックでLDAP認証を有効または無効にできます。

  • Spark Beelineが使いやすくなりました。

EMR V4.6.0

Spark 2.4.7

  • Sparkが2.4.7に更新されました。

  • jQueryが3.5.1に更新されました。

  • SparkはHiveと互換性があり、テーブルとパーティションのサイズを自動的に更新します。

  • Sparkのメタデータとジョブ実行情報をDataWorksに送信できます。

EMR V4.5.0

Spark 2.4.5

Alibaba Cloud DLFに保存されているメタデータがサポートされています。

EMR V4.3.0

Spark 2.4.5

  • Sparkが2.4.5に更新されました。

  • 関連するDelta Lakeが0.6.0に更新されました。

  • Ranger Hiveを有効にした後、PySparkが正しく実行されない問題が修正されました。

EMR V3.Xシリーズ

EMRバージョン

Sparkバージョン

拡張機能

EMR V3.51.0

Spark 3.4.2

Spark 3 が 3.4.2 に更新されました。

EMR V3.50.0

Spark 3.3.1

Commons Text ライブラリの脆弱性が修正されました。

EMR V3.49.0

Spark 3.3.1

jdo に関連する設定が [hive-site.xml] 設定ファイルから削除されました。

EMR V3.46.1

Spark 3.3.1

  • デフォルトでは、Spark History Server のデータの保存に OSS-HDFS が使用されます。

  • Spark3 Native Engine のデータの保存に OSS または OSS-HDFS が使用されます。

EMR V3.44.0

Spark 3.3.1

Spark が 3.3.1 に更新されました。

EMR V3.43.0

Spark 3.3.0

  • Spark が 3.3 に更新されました。

  • Kerberos 認証がサポートされています。

EMR V3.40.0

Spark 3.2.1

Spark が 3.2.1 に更新されました。

EMR V3.39.1

Spark 2.4.8

  • Hive on Spark が最適化されました。

  • Spark が JindoSDK に適合されました。

EMR V3.38.1

Spark 2.4.8

  • 設定が無効なため、Log4j Metrics Appender が削除されました。

  • SparkContext の起動時に発生するヌルポインター例外が修正されました。

EMR V3.38.0

Spark 2.4.8

  • Spark が 2.4.8 に更新されました。

  • Spark 2.4.8 と Spark 3.1.2 の両方がサポートされています。

    説明

    Spark 3 では、Delta と Remote Shuffle Service はサポートされていません。

  • Spark 3.x では、Spark SQL の Distinct 計算パフォーマンスが最適化されています。この最適化機能は、集計演算子に複数の count(distinct case ... when ...) メソッドが含まれている場合にトリガーされます。

  • Adaptive Query Execution (AQE) に必要な統計情報の一部が欠落している場合に返される、配列インデックスの範囲外エラーが修正されました。

  • 特定のシナリオにおける AQE とデータキャッシングに関連するエラーが修正されました。

EMR V3.37.0

Spark 2.4.7

Spark と Delta Lake の非互換性の問題が修正されました。

EMR V3.36.1

Spark 2.4.7

  • EMR コンソールで、Spark サービスの [設定] タブの [spark-defaults] タブにあるパラメーター名が最適化されました。

  • ログ収集のパフォーマンスが最適化されました。

  • データ圧縮アルゴリズム Zstandard がサポートされています。

EMR V3.35.0

Spark 2.4.7

  • 適応実行が有効にならない問題が修正されました。
  • Spark と Hive で統計集計関数の使用方法が異なる問題が修正されました。
  • Spark が CHAR 型の有効なデータを読み取れない問題が修正されました。

EMR V3.34.0

Spark 2.4.7

  • いくつかのデフォルト設定が最適化されました。

  • パフォーマンスが最適化されました。ウィンドウベースの top-k クエリをプッシュダウンできます。

  • CSV または JSON 形式の Hive テーブルとのデータの読み書き機能が強化されました。

  • ANALYZE ステートメントでテーブルのすべての列名を省略できます。

  • クリックで LDAP 認証を有効または無効にできます。

  • Spark Beeline が使いやすくなりました。

EMR V3.33.0

Spark 2.4.7

  • Spark が 2.4.7 に更新されました。
  • jQuery が 3.5.1 に更新されました。
  • Spark は Hive と互換性があり、テーブルとパーティションのサイズを自動的に更新します。
  • Spark のメタデータとジョブ実行情報を DataWorks に送信できます。

EMR V3.32.0

Spark 2.4.5

JindoTable のデータ収集機能を有効または無効にできます。

EMR V3.30.0

Spark 2.4.5

  • Alibaba Cloud Data Lake Formation (DLF) からのメタデータがサポートされています。
  • Has の依存関係が 2.0.1 に更新されました。
  • Streaming SQL のバッククォート (`) によって発生する問題が修正されました。
  • Delta の JAR パッケージが削除されました。Delta は個別にデプロイされます。
  • ログは HDFS ディレクトリに保存されます。

EMR V3.29.0

Spark 2.4.5

  • Spark が 2.4.5.2.0 に更新されました。

  • サードパーティのメタストアがサポートされています。

  • datalake metastore-client パラメーターが追加されました。

EMR V3.28.0

Spark 2.4.5

  • Spark が 2.4.5 に更新されました。
  • Spark は DataFactory の Streaming SQL スクリプトと互換性があります。
  • Delta 0.6.0 がサポートされています。

EMR V3.27.0

Spark 2.4.3

  • キューブで日付型のパーティションフィールドがサポートされています。
  • spark-submit スクリプトのスタックの深さが増加しました。

EMR V3.25.0

Spark 2.4.3

  • spark.sql.extensions などの Delta 関連のパラメーターを EMR コンソールで設定できます。
  • InputFormat の手動設定を回避するために、Hive を使用して Delta テーブルからデータを読み取ることができます。
  • ALTER TABLE SET TBLPROPERTIES および UNSET TBLPROPERTIES ステートメントがサポートされています。

EMR V3.24.0

Spark 2.4.3

  • Delta 関連のパラメーターがサポートされています。
  • Spark プラグインを Ranger で設定できます。
  • JindoCube が 0.3.0 に更新されました。

EMR V3.23.0

Spark 2.4.3

  • 特定のケースで IsolatedClassLoader がクラスをロードできない問題を修正するために、Spark SQL Thrift Server のコードを更新しました。
  • 安定性を向上させるために、Spark トランザクションに関連するコードをリファクタリングしました。
  • 組み込みの Hive をバージョン 2.3 にアップグレードした後、最適化された行指向カラムナー (ORC) ファイルを読み書きできない問題を修正しました。
  • MERGE INTO 構文をサポートします。
  • SCAN および STREAM 構文をサポートします。
  • Structured Streaming Kafka シンクの Exactly-Once Semantics (EOS) をサポートします。
  • Delta をバージョン 0.4.0 にアップグレードしました。

EMR V3.22.0

Spark 2.4.3

  • リレーショナルキャッシュ

    事前計算によってデータクエリを高速化するために、リレーショナルキャッシュの使用をサポートします。データを事前計算するためにリレーショナルキャッシュを作成できます。データクエリの際に、Spark Optimizer は適切なリレーショナルキャッシュを自動的に検出し、SQL 実行プランを最適化し、リレーショナルキャッシュに基づいてデータ計算を続行します。これにより、データクエリが高速化されます。たとえば、リレーショナルキャッシュを使用して、多次元オンライン分析処理 (MOLAP) を実装したり、データレポートを生成したり、データダッシュボードを作成したり、クラスター間でデータを同期したりできます。

    • DDL を使用して CACHE、UNCACHE、ALTER、SHOW などの操作を実行することをサポートします。リレーショナルキャッシュは、Spark のすべてのデータソースとデータ形式をサポートします。
    • REFRESH コマンドを使用して、キャッシュを自動的に更新するか、手動で更新することをサポートします。指定されたパーティションに基づく増分キャッシュをサポートします。
    • リレーショナルキャッシュに基づいて SQL 実行プランを最適化することをサポートします。
  • Streaming SQL
    • Stream Query Writer のパラメーター設定を正規化しました。
    • Kafka データテーブルのスキーマ互換性チェックを最適化しました。
    • スキーマのない Kafka データテーブルの Schema Registry にスキーマを自動的に登録することをサポートします。
    • Kafka スキーマに互換性がない場合に記録されるログ情報を最適化しました。
    • クエリ結果が Kafka データテーブルに書き込まれるときに列名を明示的に指定する必要があるという制限を削除しました。
    • ストリーミング SQL クエリが Kafka および LogHub データソースのみをサポートするという制限を削除しました。
  • Delta

    Delta コンポーネントを追加しました。Spark を使用して Delta データソースを作成し、ストリーミングデータの書き込み、トランザクションの読み取りと書き込み、データ検証、データのバックトラッキングを実行できます。詳細については、Delta の詳細をご参照ください。

    • DataFrame API を呼び出して、Delta からデータを読み取ったり、Delta にデータを書き込んだりできます。
    • Structured Streaming API を呼び出して、Delta をデータソースまたはシンクとして使用してデータを読み書きできます。
    • Delta API を呼び出して、データの更新、削除、マージ、vacuum、最適化を実行できます。
    • SQL ステートメントを使用して、Delta テーブルを作成したり、Delta にデータをインポートしたり、Delta テーブルからデータを読み取ったりできます。
  • その他
    • 主キーと外部キーをサポートします。これは制約機能です。
    • サーブレットの競合などの JAR の競合を解決しました。