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

E-MapReduce:カスタム設定ファイルの管理

最終更新日:Jul 18, 2026

カスタム設定ファイルを使用すると、タスクやセッションなどの環境設定を定義できます。XML や JSON など複数のファイル形式がサポートされており、ワークロード全体で設定の一貫性とセキュリティを確保できます。

前提条件

ワークスペースを作成しました。詳細については、「ワークスペースの管理」をご参照ください。

カスタム設定ファイルの作成

  1. 設定管理ページに移動します。

    1. E-MapReduce コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、EMR Serverless > Spark を選択します。

    3. Spark ページで、対象のワークスペース名をクリックします。

    4. EMR Serverless Spark ページで、左側のナビゲーションウィンドウから [設定管理] をクリックします。

  2. Configurations ページで、ConfigMaps タブをクリックします。

  3. Create Custom Configuration File をクリックします。

  4. Create Custom Configuration File ページで、以下のパラメーターを設定し、create をクリックします。

    パラメーター

    説明

    Path

    ファイルの保存先パスを選択します。

    Name

    ファイル名と拡張子を指定します。ファイル形式に応じて、.txt.xml、または .json を選択します。

    File Content

    設定内容を入力します。入力内容は、選択したファイル形式のフォーマット要件を満たしている必要があります。

    Description

    (任意)ファイルの目的を記述して、識別しやすくします。

    説明

    システムには事前定義された設定ファイルが含まれており、これらは名前の変更や上書きができません。次のファイル名は予約済みです:spark-defaults.confkyuubi-defaults.confexecutorPodTemplate.yamlspark-pod-template.yamldriver_log4j.xmlexecutor_log4j.xmlsession_log4j.xmlspark.properties、および syncer_log4j.xml

カスタム設定ファイルを作成後、[操作] 列の 編集 または 削除 をクリックして、ファイルを編集または削除できます。

カスタム設定ファイルの使用

例 1:Ranger 認証の有効化

EMR Serverless の Spark Thrift Server で Ranger 認証を有効化するには、カスタム設定ファイルを使用します。

  1. カスタム設定ファイルを作成します。

    ranger-spark-security.xml という名前の設定ファイルを作成し、/etc/spark/conf に保存します。以下の内容を使用してください:

    <configuration>
      <property>
        <name>ranger.plugin.spark.policy.cache.dir</name>
        <value>/opt/emr-hive/policycache</value>
      </property>
      <property>
        <name>ranger.plugin.spark.ambari.cluster.name</name>
        <value>serverless-spark</value>
      </property>
      <property>
        <name>ranger.plugin.spark.service.name</name>
        <value>emr-hive</value>
      </property>
      <property>
        <name>ranger.plugin.spark.policy.rest.url</name>
        <value>http://<ranger_admin_ip>:<ranger_admin_port></value>
      </property>
      <property>
        <name>ranger.plugin.spark.policy.source.impl</name>
        <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value>
      </property>
      <property>
        <name>ranger.plugin.spark.super.users</name>
        <value>root</value>
      </property>
    </configuration>

    <ranger_admin_ip> および <ranger_admin_port> は、ご利用の Ranger Admin サービスの内部 IP アドレスおよびポートに置き換えてください。ECS 上の EMR クラスターで Ranger サービスに接続する場合は、<ranger_admin_ip> にマスターノードの内部 IP アドレスを、<ranger_admin_port> に 6080 を使用できます。

  2. Spark Thrift Server を構成します。

    Spark Thrift Server セッションで Ranger 認証を有効化するには、まずセッションを停止します。Normal Network Connection ドロップダウンリストで、作成済みの接続名を選択します。次に、Spark Configuration に以下の構成を追加します。編集後、変更を反映させるためにセッションを再起動してください。

    spark.emr.serverless.user.defined.jars     /opt/ranger/ranger-spark.jar
    spark.sql.extensions                       org.apache.kyuubi.plugin.spark.authz.ranger.RangerSparkExtension
  3. 接続をテストします。

    Spark Beeline を使用して接続をテストします。接続方法の詳細については、「Spark Thrift Server への接続」をご参照ください。必要な権限を持たずにデータベース、テーブル、その他のリソースにアクセスしようとすると、システムは権限拒否エラーを返します。

    Error: org.apache.hive.service.cli.HiveSQLException: Error running query: org.apache.kyuubi.plugin.spark.authz.AccessControlException: Permission denied: user [test] does not have [update] privilege on [database=default/table=students/column=name]
    	at org.apache.spark.sql.hive.thriftserver.HiveThriftServerErrors$.runningQueryError(HiveThriftServerErrors.scala:46)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$$execute(SparkExecuteStatementOperation.scala:262)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$2$$anon$3.$anonfun$run$2(SparkExecuteStatementOperation.scala:166)
    	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
    	at org.apache.spark.sql.hive.thriftserver.SparkOperation.withLocalProperties(SparkOperation.scala:79)
    	at org.apache.spark.sql.hive.thriftserver.SparkOperation.withLocalProperties$(SparkOperation.scala:63)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.withLocalProperties(SparkExecuteStatementOperation.scala:41)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$2$$anon$3.run(SparkExecuteStatementOperation.scala:166)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$2$$anon$3.run(SparkExecuteStatementOperation.scala:161)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at javax.security.auth.Subject.doAs(Subject.java:422)
    	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
    	at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation$$anon$2.run(SparkExecuteStatementOperation.scala:175)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:750)

例 2:OSS ファイルへのアクセス

ECS 上の EMR から EMR Serverless へ非 SQL タスクを移行する際、EMR Serverless では core-site.xml ファイルが自動的にロードされないため、Alibaba Cloud Object Storage Service (OSS) または OSS-HDFS にアクセスするタスクが UnsupportedFileSystemException エラーで失敗することがあります。この問題を解決するには、タスクコード内で SparkContext#hadoopConfiguration を通じて FileSystem をすでに初期化していない限り、手動で設定を提供する必要があります。

Configurations ページの ConfigMaps タブで、core-site.xml という名前の設定ファイルを作成し、/etc/spark/conf に保存します。ファイルの内容は以下のとおりです:

<?xml version="1.0" ?>
<configuration>
    <property>
        <name>fs.AbstractFileSystem.oss.impl</name>
        <value>com.aliyun.jindodata.oss.OSS</value>
    </property>
    <property>
        <name>fs.oss.endpoint</name>
        <value>oss-cn-<region>-internal.aliyuncs.com</value>
    </property>
    <property>
        <name>fs.oss.impl</name>
        <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
    </property>
    <property>
        <name>fs.oss.credentials.provider</name>
        <value>com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider</value>
    </property>
    <property>
        <name>fs.oss.accessKeyId</name>
        <value>Your AccessKey ID for OSS or OSS-HDFS</value>
    </property>
    <property>
        <name>fs.oss.accessKeySecret</name>
        <value>Your AccessKey Secret for OSS or OSS-HDFS</value>
    </property>
</configuration>

<region> はご利用の OSS リージョン(例:hangzhou)に置き換えてください。