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

E-MapReduce:ネイティブクエリアクセラレーションの有効化

最終更新日:Mar 27, 2026

JindoTable のネイティブエンジンは、JindoFS または Object Storage Service (OSS) に格納された ORC および Parquet ファイルに対する Spark、Hive、Presto クエリを高速化します。この機能はデフォルトで無効化されています。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • E-MapReduce (EMR) クラスターがバージョン V3.35.0 以降、または V4.9.0 以降で実行中であること

  • ORC または Parquet ファイルが JindoFS または OSS に格納されていること

EMR クラスターの作成手順については、「クラスターの作成」をご参照ください。

サポート対象のエンジンとファイル形式

ネイティブエンジンは、以下のエンジンとファイル形式の組み合わせをサポートしています。

エンジン ORC Parquet
Spark2 サポート対象 サポート対象
Presto サポート対象 非サポート
Hive2 非サポート サポート対象

制限事項

  • バイナリ型のデータはサポートされていません。

  • パーティションキー列の値がファイル内に格納されているパーティションテーブルはサポートされていません。

  • 既存のファイルスキーマと競合する可能性があるため、spark.read.schema(userDefinedSchema)によるスキーマ定義は許可されていません。

  • 日付型のデータは YYYY-MM-DD 形式である必要があり、有効値の範囲は 1400-01-01 から 9999-12-31 までです。

  • 同一テーブル内の大文字と小文字を区別するカラムに対するクエリは高速化できません。たとえば、ID カラムと id カラムの両方が存在する場合、これらのカラムに対するクエリは高速化されません。

Spark でのクエリアクセラレーションの有効化

説明

クエリアクセラレーションではオフヒープメモリが使用されます。ネイティブエンジンに十分なメモリを割り当てるために、Spark タスクに --conf spark.executor.memoryOverhead=4g を追加してください。

グローバルパラメーターの構成

クラスター内のすべての Spark ジョブにクエリアクセラレーションを適用するには、spark.sql.extensions パラメーターをグローバルに設定します。

  1. Alibaba Cloud EMR コンソールにログインします。

  2. 上部のナビゲーションバーで、ご利用のクラスターが配置されているリージョンを選択し、リソースグループを指定します。

  3. クラスターマネジメント タブをクリックします。

  4. クラスター一覧から対象のクラスターを見つけ、[操作] 列の 詳細 をクリックします。

  5. 左側のナビゲーションウィンドウで、クラスターサービス > Spark を選択します。

  6. 構成 タブをクリックします。

  7. spark.sql.extensions パラメーターを見つけ、その値を以下のように設定します。

    io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension
  8. 「サービス構成」セクションの右上隅にある 保存 をクリックします。

  9. 変更の確認 ダイアログボックスで、説明 を入力し、OK をクリックします。

  10. 右上隅の 操作 > ThriftServer の再起動 を選択します。

  11. クラスター活動 ダイアログボックスで、説明 を入力し、OK をクリックします。

  12. 確認 メッセージで、OK をクリックします。

ジョブレベルのパラメーターの構成

単一の Spark Shell または Spark SQL ジョブに対してクエリアクセラレーションを有効化するには、ジョブの送信時に以下の起動パラメーターを追加します。

spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension

構成の詳細については、「Spark Shell ジョブの構成」および「Spark SQL ジョブの構成」をご参照ください。

アクセラレーションの有効化状態の確認

  1. Spark History Server の Web UI を開きます。

  2. SQL タブで、ご利用のジョブの実行タスクを開きます。JindoDataSourceV2Scan が実行計画に表示される場合、クエリアクセラレーションは有効化されています。表示されない場合は、上記の手順で構成を確認してください。

    check_Jindo

Presto でのクエリアクセラレーションの有効化

Presto には hive-acc という名前の組み込みカタログが含まれています。このカタログに接続することで、クエリアクセラレーションを有効化できます。

presto --server https://emr-header-1.cluster-xxx:7778/ --catalog hive-acc --schema default

emr-header-1.cluster-xxx は、ご利用の emr-header-1 ノードのホスト名に置き換えてください。

説明

Presto で本機能を使用する場合、複雑なデータ型(MAP、STRUCT、ARRAY)はサポートされていません。

Hive でのクエリアクセラレーションの有効化

重要

安定したジョブスケジューリングを最優先事項とする場合は、Hive で本機能を無効化したままにしてください。

EMR Hive V2.3.7(EMR V3.35.0)には、Parquet クエリを高速化する JindoTable プラグインが含まれています。hive.jindotable.native.enabled パラメーターを設定することで、本機能を有効化できます。

オプション 1:Hive ジョブ内でパラメーターを設定する

set hive.jindotable.native.enabled=true;

オプション 2:Hive 構成ページ(MapReduce 上の Hive、Tez 上の Hive)でパラメーターを設定する

  1. Hive 構成ページで、hive-site.xml タブをクリックします。

  2. カスタムパラメーター hive.jindotable.native.enabled を追加し、その値を true に設定します。

  3. 構成を保存して Hive を再起動します。

説明

Hive で本機能を使用する場合、複雑なデータ型(MAP、STRUCT、ARRAY)はサポートされていません。