Todos os produtos
Search
Central de documentação

E-MapReduce:Manage custom configuration files

Última atualização: Jul 20, 2026

Arquivos de configuração personalizados permitem definir configurações de ambiente para tarefas como jobs e sessões. Vários formatos de arquivo são suportados, incluindo XML e JSON, garantindo consistência e segurança nas configurações em todas as cargas de trabalho.

Pré-requisitos

Crie um workspace. Para mais informações, consulte Manage workspaces.

Criar um arquivo de configuração personalizado

  1. Acesse a página Configuration Management.

    1. Faça login no console do E-MapReduce.

    2. No painel de navegação à esquerda, escolha EMR Serverless > Spark.

    3. Na página Spark, clique no nome do workspace desejado.

    4. Na página EMR Serverless Spark, clique em Configuration Management no painel de navegação à esquerda.

  2. Na página Configurations, clique na aba ConfigMaps.

  3. Clique em Create Custom Configuration File.

  4. Na página Create Custom Configuration File, configure os parâmetros a seguir e clique em create.

    Parâmetro

    Descrição

    Path

    Selecione o caminho de armazenamento do arquivo.

    Name

    Especifique o nome e a extensão do arquivo. Escolha .txt, .xml ou .json conforme o tipo de arquivo.

    File Content

    Insira o conteúdo da configuração. O conteúdo deve obedecer aos requisitos de formato do tipo de arquivo selecionado.

    Description

    Opcional. Descreva a finalidade do arquivo para facilitar a identificação.

    Nota

    O sistema inclui arquivos de configuração predefinidos que não podem ser renomeados ou sobrescritos. Os seguintes nomes de arquivo são reservados: spark-defaults.conf, kyuubi-defaults.conf, executorPodTemplate.yaml, spark-pod-template.yaml, driver_log4j.xml, executor_log4j.xml, session_log4j.xml, spark.properties e syncer_log4j.xml.

Após criar um arquivo de configuração personalizado, clique em Edit ou Delete na coluna Actions para modificá-lo ou removê-lo.

Usar arquivos de configuração personalizados

Exemplo 1: Ativar autenticação do Ranger

Ative a autenticação do Ranger para um Spark Thrift Server no EMR Serverless usando um arquivo de configuração personalizado.

  1. Crie um arquivo de configuração personalizado.

    Crie um arquivo de configuração chamado ranger-spark-security.xml e salve-o em /etc/spark/conf. Use o seguinte conteúdo:

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

    Substitua <ranger_admin_ip> e <ranger_admin_port> pelo endereço IP interno e pela porta do serviço Ranger Admin. Caso se conecte ao serviço Ranger em um cluster EMR on ECS, use o endereço IP interno do nó mestre para <ranger_admin_ip> e 6080 para <ranger_admin_port>.

  2. Configure o Spark Thrift Server.

    Para ativar a autenticação do Ranger em uma sessão do Spark Thrift Server, primeiro pare a sessão. Na lista suspensa Normal Network Connection, selecione o nome da conexão criada. Em seguida, adicione as configurações abaixo em Spark Configuration. Após editar, reinicie a sessão para aplicar as alterações.

    spark.emr.serverless.user.defined.jars     /opt/ranger/ranger-spark.jar
    spark.sql.extensions                       org.apache.kyuubi.plugin.spark.authz.ranger.RangerSparkExtension
  3. Teste a conexão.

    Use o Spark Beeline para testar a conexão. Para mais informações sobre métodos de conexão, consulte Connect to Spark Thrift Server. Ao tentar acessar um banco de dados, tabela ou outro recurso sem as permissões necessárias, o sistema retorna um erro de permissão negada.

    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)

Exemplo 2: Acessar arquivos do OSS

Ao migrar jobs não SQL do EMR on ECS para o EMR Serverless, jobs que acessam o Object Storage Service (OSS) ou OSS-HDFS da Alibaba Cloud podem falhar com o erro UnsupportedFileSystemException, pois o EMR Serverless não carrega automaticamente o arquivo core-site.xml. Para resolver isso, forneça a configuração manualmente, a menos que o código do job já inicialize o FileSystem por meio de SparkContext#hadoopConfiguration.

Na aba ConfigMaps da página Configurations, crie um arquivo de configuração chamado core-site.xml e salve-o em /etc/spark/conf. O conteúdo do arquivo é o seguinte:

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

Substitua <region> pela região do OSS utilizada, por exemplo, hangzhou.