Todos os produtos
Search
Central de documentação

E-MapReduce:ative a aceleração de consulta nativa

Última atualização: Sep 21, 2026

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

Pré-requisitos

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

Limitações

  • Não é possível acelerar arquivos do tipo binário.

  • Não há suporte para tabelas particionadas se os valores de suas colunas de chave de partição estiverem armazenados nos arquivos de dados.

  • Clusters do E-MapReduce da versão EMR-5.X e posteriores não são compatíveis.

  • O uso de spark.read.schema(userDefinedSchema) não é compatível.

  • Há suporte para tipos de data apenas no intervalo de 1400-01-01 a 9999-12-31.

  • Não é possível utilizar tabelas que contêm nomes de colunas que diferem apenas em maiúsculas e minúsculas (por exemplo, NAME e name). Os nomes das colunas são tratados sem distinção entre maiúsculas e minúsculas durante a aceleração de consulta nativa.

  • Os mecanismos e formatos de armazenamento suportados para Spark, Hive e Presto são os seguintes.

    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 suportados para Spark, Hive e Presto são os seguintes.

    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 de ORC ou Parquet do JindoTable.

    Nota
    • A aceleração de consulta nativa utiliza memória off-heap. Recomendamos adicionar a configuração --conf spark.executor.memoryOverhead=4g ao seu job do Spark para alocar recursos adicionais para a aceleração.

    • Para ler arquivos ORC ou Parquet no Spark, você deve usar a API DataFrame ou o Spark SQL.

    • Configurações globais

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

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

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

        3. clique em 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 service Spark, clique em 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

      execute o 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 a Spark Shell job ou Configure a Spark SQL job.

  2. 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 de execução.

      Se JindoDataSourceV2Scan aparecer, a aceleração estará ativada. Caso contrário, verifique as configurações em Step 1. Na página Details for Query 10, o Directed Acyclic Graph (DAG) mostra o plano de execução. Por exemplo, o JindoDataSourceV2Scan pode verificar 15,6 GB de dados (cerca de 14 bilhões de linhas), que são então filtrados para 2,7 bilhões de linhas. Uma operação final de 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 de consulta nativa utiliza memória off-heap. Portanto, você deve alocar 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. Você pode usar o catálogo hive-acc para ative a aceleração de consulta nativa.

Exemplo:

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

A aceleração de consulta nativa para o Presto atualmente 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 uma estabilidade rigorosa do job, recomendamos não ative a aceleração de consulta nativa.

Você pode melhorar o desempenho do Hive de uma das seguintes maneiras:

  • Usar o console

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

  • Usar a CLI

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

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

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