Todos os produtos
Search
Central de documentação

E-MapReduce:Ativar aceleração nativa de consultas

Última atualização: Jun 27, 2026

O JindoTable usa um mecanismo nativo para acelerar consultas em arquivos ORC ou Parquet no Spark, Hive ou Presto. Este tópico explica como ativar a aceleração nativa de consultas para melhorar o desempenho do Spark, Hive e Presto.

Pré-requisitos

Você deve ter um cluster E-MapReduce com arquivos ORC ou Parquet armazenados no JindoFS ou OSS. Para mais informações, consulte Crie um cluster.

Limitações

  • A aceleração não suporta arquivos do tipo binário.

  • Tabelas particionadas não são suportadas se os valores das colunas de chave de partição estiverem armazenados nos arquivos de dados.

  • Clusters E-MapReduce da versão EMR-5.X e posteriores não são suportados.

  • O uso de spark.read.schema(userDefinedSchema) não é suportado.

  • Tipos de data são suportados apenas no intervalo de 1400-01-01 a 9999-12-31.

  • Tabelas com nomes de colunas diferenciados apenas por maiúsculas e minúsculas (por exemplo, NAME e name) não são suportadas. A aceleração nativa de consultas trata os nomes das colunas sem distinção entre maiúsculas e minúsculas.

  • Os mecanismos e formatos de armazenamento compatíveis com Spark, Hive e Presto são:

    Mecanismo

    ORC

    Parquet

    Spark2

    Suportado

    Suportado

    Spark3

    Suportado

    Suportado

    Presto

    Suportado

    Suportado

    Hive2

    Não suportado

    Suportado

    Hive3

    Não suportado

    Suportado

  • Os mecanismos e sistemas de arquivos de armazenamento compatíveis com Spark, Hive e Presto são:

    Mecanismo

    OSS

    JindoFS

    HDFS

    Spark2

    Suportado

    Suportado

    Suportado

    Presto

    Suportado

    Suportado

    Suportado

    Hive2

    Suportado

    Suportado

    Não suportado

    Hive3

    Suportado

    Suportado

    Não suportado

Melhorar o desempenho do Spark

  1. Ative a aceleração ORC ou Parquet do JindoTable.

    Nota
    • A aceleração nativa de consultas usa memória off-heap. Adicione a configuração --conf spark.executor.memoryOverhead=4g ao job Spark para alocar recursos adicionais à aceleração.

    • Para ler arquivos ORC ou Parquet no Spark, use a API DataFrame ou Spark SQL.

    • Configurações globais

      1. Acesse a página de detalhes do cluster.

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

        2. Na barra de navegação superior, selecione uma região e um grupo de recursos conforme necessário.

        3. Clique na aba Clusters.

        4. Na página Clusters, localize o cluster e clique em Details na coluna Actions.

      2. Modifique a configuração.

        1. No painel de navegação à esquerda, escolha Services > Spark.

        2. Na página do serviço Spark, clique na aba Configure.

        3. Na caixa de pesquisa, localize o parâmetro spark.sql.extensions e defina seu valor como io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension.

      3. Salve a configuração.

        1. Clique em Save.

        2. Na caixa de diálogo Confirm, insira um Execution Reason e clique em OK.

      4. Reinicie o ThriftServer.

        1. No canto superior direito, escolha Actions > Restart ThriftServer.

        2. Na caixa de diálogo Cluster Activities, insira um Execution Reason e clique em OK.

        3. Na caixa de diálogo Confirm, clique em OK.

    • Configurações no nível do job

      Ao executar spark-shell ou spark-sql, adicione o seguinte parâmetro de inicialização do Spark:

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

      Para mais informações sobre jobs, consulte Configure um job Spark Shell ou Configure um job Spark SQL.

    • Verifique se a aceleração está ativada.

      1. Faça login na UI do Spark History Server.

      2. Na página SQL da UI do Spark, visualize o job executado.

        Se JindoDataSourceV2Scan aparecer, a aceleração estará ativada. Caso contrário, verifique as configurações na Etapa 1. Na página Details for Query 10, o Grafo Acíclico Direcionado (DAG) exibe o plano de execução. Por exemplo, o JindoDataSourceV2Scan pode processar 15,6 GB de dados (cerca de 14 bilhões de linhas), filtrando-os posteriormente para 2,7 bilhões de linhas. Uma operação final HashAggregate gera 4.722 linhas, e a consulta total leva 2,3 minutos.

    • Melhorar o desempenho do Presto

      Importante

      As consultas do Presto têm alta concorrência e a aceleração nativa usa memória off-heap. Portanto, aloque mais de 10 GB de memória para a aceleração de consultas.

      O Presto possui um catálogo integrado para aceleração nativa do JindoTable chamado hive-acc. Use o catálogo hive-acc para ativar a aceleração nativa de consultas.

      Exemplo:

      presto --server emr-header-1:9090 --catalog hive-acc --schema default
      Nota

      Atualmente, a aceleração nativa de consultas para Presto não suporta a leitura de tipos de dados complexos, como Map, Struct ou Array.

      Melhorar o desempenho do Hive

      Importante

      Se for necessária estabilidade rigorosa do job, não ative a aceleração nativa de consultas.

      Melhore o desempenho do Hive de uma das seguintes maneiras:

      • Pelo console

        No console, acesse a página Configure do serviço Hive. Localize o parâmetro personalizado hive.jindotable.native.enabled e defina seu valor como true. Salve a configuração e reinicie o serviço para aplicar a alteração. Este método aplica-se tanto ao Hive on MR quanto ao Hive on Tez.

      • Pela CLI

        Na CLI, defina hive.jindotable.native.enabled como true para ativar a aceleração nativa de consultas. Como o E-MapReduce V3.35.0 e versões posteriores incluem o plug-in de aceleração Parquet do JindoTable, defina esse parâmetro diretamente.

        set hive.jindotable.native.enabled=true;
      Nota

      Atualmente, a aceleração nativa de consultas para Hive não suporta a leitura de tipos de dados complexos, como Map, Struct ou Array.