Tous les produits
Search
Centre de documentation

E-MapReduce:Manage custom configuration files

Dernière mise à jour :Aug 09, 2026

Les fichiers de configuration personnalisés vous permettent de définir les paramètres d'environnement pour des tâches telles que les jobs et les sessions. Plusieurs formats de fichier sont pris en charge, notamment XML et JSON, garantissant la cohérence et la sécurité de la configuration sur l'ensemble de vos charges de travail.

Prérequis

Vous avez créé un espace de travail. Pour plus d'informations, consultez la rubrique Gérer les espaces de travail.

Créer un fichier de configuration personnalisé

  1. Accédez à la page Gestion de la configuration.

    1. Connectez-vous à la console E-MapReduce.

    2. Dans le volet de navigation de gauche, sélectionnez EMR Serverless > Spark.

    3. Sur la page Spark, cliquez sur le nom de l'espace de travail cible.

    4. Sur la page EMR Serverless Spark, cliquez sur Gestion de la configuration dans le volet de navigation de gauche.

  2. Sur la page Configurations, cliquez sur l'onglet ConfigMaps.

  3. Cliquez sur Create Custom Configuration File.

  4. Sur la page Create Custom Configuration File, configurez les paramètres suivants et cliquez sur create.

    |
    **Paramètre**
    |
    **Description**
    | | --- | --- | |
    **Path**
    |
    Sélectionnez le chemin de stockage du fichier.
    | |
    **Name**
    |
    Spécifiez le nom du fichier et son extension. Sélectionnez `.txt`, `.xml` ou `.json` en fonction du type de fichier.
    | |
    **File Content**
    |
    Saisissez le contenu de la configuration. Le contenu doit respecter le format du type de fichier sélectionné.
    | |
    **Description**
    |
    (Facultatif) Description de l'objectif du fichier pour faciliter son identification.
    |
    Remarque

    Le système inclut des fichiers de configuration prédéfinis qui ne peuvent pas être renommés ni écrasés. Les noms de fichier suivants sont réservés : spark-defaults.conf, kyuubi-defaults.conf, executorPodTemplate.yaml, spark-pod-template.yaml, driver_log4j.xml, executor_log4j.xml, session_log4j.xml, spark.properties et syncer_log4j.xml.





















Une fois le fichier de configuration personnalisé créé, cliquez sur Path ou Name dans la colonne Actions pour le modifier ou le supprimer.

Utiliser les fichiers de configuration personnalisés

Exemple 1 : Activer l'authentification Ranger

Activez l'authentification Ranger pour un serveur Spark Thrift dans EMR Serverless à l'aide d'un fichier de configuration personnalisé.

  1. Créez un fichier de configuration personnalisé.

    Créez un fichier de configuration nommé ranger-spark-security.xml et enregistrez-le dans /etc/spark/conf. Utilisez le contenu suivant :

    <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>

    Remplacez <ranger_admin_ip> et <ranger_admin_port> par l'adresse IP interne et le port de votre service Ranger Admin. Si vous vous connectez au service Ranger dans un cluster EMR on ECS, utilisez l'adresse IP interne du nœud maître pour <ranger_admin_ip> et 6080 pour <ranger_admin_port>.

  2. Configurez le serveur Spark Thrift.

    Pour activer l'authentification Ranger pour une session de serveur Spark Thrift, commencez par arrêter la session. Dans la liste déroulante File Content, sélectionnez le nom de connexion que vous avez créé. Ajoutez ensuite les configurations suivantes dans Description. Redémarrez la session pour que les modifications prennent effet.

    spark.emr.serverless.user.defined.jars     /opt/ranger/ranger-spark.jar
    spark.sql.extensions                       org.apache.kyuubi.plugin.spark.authz.ranger.RangerSparkExtension
  3. Testez la connexion.

    Utilisez Spark Beeline pour tester la connexion. Pour plus d'informations sur les méthodes de connexion, consultez la rubrique Se connecter au serveur Spark Thrift. Si vous tentez d'accéder à une base de données, une table ou une autre ressource sans les autorisations requises, le système renvoie une erreur d'autorisation refusée.

    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)

Exemple 2 : Accéder aux fichiers OSS

Lors de la migration de jobs non SQL d'EMR on ECS vers EMR Serverless, les jobs accédant à Alibaba Cloud Object Storage Service (OSS) ou à OSS-HDFS peuvent échouer avec une erreur UnsupportedFileSystemException car EMR Serverless ne charge pas automatiquement le fichier core-site.xml. Pour résoudre ce problème, fournissez manuellement la configuration, sauf si le code de votre job initialise déjà le FileSystem via SparkContext#hadoopConfiguration.

Sur l'onglet Edit de la page Delete, créez un fichier de configuration nommé core-site.xml et enregistrez-le dans /etc/spark/conf. Le contenu du fichier est le suivant :

<?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>

Remplacez <region> par la région OSS que vous utilisez, par exemple hangzhou.