Todos os produtos
Search
Central de documentação

E-MapReduce:Gerencie engines do Kyuubi

Última atualização: Jul 20, 2026

O Kyuubi oferece vários níveis de compartilhamento de engine que determinam como os engines do Spark são alocados entre sessões, usuários e grupos.

Engines suportados

A instalação do Kyuubi em um cluster do E-MapReduce também instala o YARN e o Spark 3 como dependências. O Kyuubi no E-MapReduce suporta apenas o Spark 3 no YARN. Flink, Trino e Spark 2 não são suportados. Cada engine do Spark corresponde a uma aplicação do Spark no YARN. Para mais informações, consulte Examples.

Níveis de compartilhamento

Para defina o nível de compartilhamento de um engine, configure o parâmetro kyuubi.engine.share.level na aba kyuubi-defaults.conf da página de configuração do service Kyuubi.

Nível de compartilhamento

Descrição

Casos de uso

Grau de isolamento

Compartilhamento

CONNECTION

Um engine é iniciado por sessão.

  • Extração, transformação e carga (ETL) em grande escala

  • Consulta ad-hoc

Alto

Baixo

USER

Um engine por usuário.

Médio

Médio

GROUP

Um engine por grupo de recursos.

Baixo

Alto

SERVER

Um engine por cluster.

Administradores

Mais alto para clusters de alta segurança e mais baixo para clusters padrão.

Clusters de alta segurança estão disponíveis apenas para administradores.

Exemplos

Os exemplos a seguir utilizam o nível de compartilhamento USER (parâmetro kyuubi.engine.share.level definido como USER) e pressupõem que todos os usuários sejam autenticados via Lightweight Directory Access Protocol (LDAP) ou Kerberos.

  1. Execute um engine sob demanda

    Quando um novo usuário, user1, envia um job usando a ferramenta kyuubi-beeline, o servidor Kyuubi inicia um novo engine do Spark para processá-lo.

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000" \
      -f query1.sql

    Caso outro usuário, user2, precise especifique recursos para o engine do Spark, ele pode usar um dos seguintes métodos:

    • Método 1: Defina os recursos, como executores da aplicação Spark, na URL JDBC.

      # Set User config via JDBC Connection URL
      
      kyuubi-beeline -n user2 \
        -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000?spark.dynamicAllocation.enabled=false;spark.executor.cores=2;spark.executor.memory=4g;spark.executor.instances=4" \
        -f query1.sql
    • Método 2: Configure os recursos do engine do Spark no arquivo de configuração kyuubi-defaults.conf.

      # Set User default config in kyuubi-defatuls.conf
      # ___user2___.spark.dynamicAllocation.enabled=false
      # ___user2___.spark.executor.memory=5g
      # ___user2___.spark.executor.cores=2
      # ___user2___.spark.executor.instances=10
      
      kyuubi-beeline -n user2 \
        -u "jdbc:hive2://master-1-1:10009/tpcds_parquet_1000" \
        -f query1.sql
  2. Envie jobs para um engine específico

    Após a conclusão de um job, o engine do Spark iniciado pelo Kyuubi permanece ativo por um período configurável. Novos jobs podem reutilizar esse engine ocioso, melhorando o desempenho ao evitar a necessidade de iniciar uma nova aplicação YARN. Se nenhum job for enviado dentro desse período, o engine é encerrado automaticamente. O parâmetro kyuubi.session.engine.idle.timeout define o tempo limite de ociosidade, cujo valor padrão é PT30M (30 minutos). É possível configurar esse parâmetro na aba kyuubi-defaults.conf.

    O Kyuubi permite crie subdomínios dentro do mesmo nível de compartilhamento. Por exemplo, se um usuário, user4, precisar de recursos de engine diferentes para cenários de negócios distintos, ele pode defina o parâmetro kyuubi.engine.share.level.subdomain na URL JDBC para envie jobs a engines diferentes.

    kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz1?kyuubi.engine.share.level.subdomain=biz1" \
      -f query1.sql
    
    kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz2?kyuubi.engine.share.level.subdomain=biz2" \
      -f query2.sql
    
     kyuubi-beeline -n user4 \
      -u "jdbc:hive2://master-1-1:10009/biz3?kyuubi.engine.share.level.subdomain=biz3" \
      -f query3.sql
  3. Um único engine suporta múltiplas sessões do Spark

    Várias sessões do Spark podem usar um único engine do Spark simultaneamente. Por exemplo, se um usuário, user1, enviar dois jobs de dois terminais diferentes ao mesmo tempo, ambos os jobs serão executados no mesmo engine do Spark. O Spark aloca recursos de executor para os jobs com base em seu mecanismo interno padrão de agendamento.

    # Console 1
    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/biz1" \
      -f query1.sql
    
    # Console 2
    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:10009/biz2" \
      -f query2.sql

Referências