Todos os produtos
Search
Central de documentação

DataWorks:Nó MR do MaxCompute

Última atualização: Jul 20, 2026

Crie e agende nós MR do MaxCompute para executar programas MapReduce que processam grandes conjuntos de dados no MaxCompute por meio da API Java do MapReduce.

Contexto

O MapReduce é um framework de computação distribuída que combina lógica de negócios personalizada com componentes integrados para formar um programa distribuído executado simultaneamente em um cluster Hadoop. O MaxCompute oferece duas versões da interface de programação MapReduce. Para mais informações, consulte MapReduce.

  • MaxCompute MapReduce: API nativa do MaxCompute. Permite execução rápida e desenvolvimento ágil sem expor o sistema de arquivos.

  • Extended MaxCompute MapReduce (MR2): Extensão do MaxCompute MapReduce com suporte a lógicas mais complexas de agendamento de jobs. Utiliza a mesma implementação da API nativa do MaxCompute.

Os nós MR do MaxCompute no DataWorks permitem agendar e executar tarefas MapReduce, além de integrá-las a outros jobs.

Pré-requisitos

Nota

Carregue e implante os recursos necessários antes de criar um nó MR do MaxCompute.

Limitações

Para consultar as limitações dos nós MR do MaxCompute, veja Limitações.

Procedimento

  1. Na página do editor de nós MR do MaxCompute, siga as etapas de desenvolvimento abaixo.

    Desenvolver o código MR

    O exemplo a seguir demonstra como usar um nó MR do MaxCompute para contar as ocorrências de cada string na tabela wc_in e gravar os resultados na tabela wc_out.

    1. Carregue, envie e implante o recurso mapreduce-examples.jar. Para mais detalhes, consulte Gerenciamento de recursos.

      Nota

      Para obter informações sobre a lógica de implementação no pacote mapreduce-examples.jar, consulte Exemplo WordCount.

    2. No editor de nós MR do MaxCompute, insira o código de exemplo a seguir.

      --Create the input table.
      CREATE TABLE IF NOT EXISTS wc_in (key STRING, VALUE STRING);
      --Create the output table.
      CREATE TABLE IF NOT EXISTS wc_out (key STRING, cnt BIGINT);
          ---Create the system dual table.
          DROP TABLE IF EXISTS dual;
          CREATE TABLE dual(id BIGINT); --If the workspace does not have this pseudo table, you need to create it and initialize the data.
          ---Initialize data for the system pseudo table.
          INSERT OVERWRITE TABLE dual SELECT count(*) FROM dual;
          ---Insert sample data into the input table wc_in.
          INSERT OVERWRITE TABLE wc_in SELECT * FROM (
          SELECT 'project','val_pro' FROM dual 
          UNION ALL 
          SELECT 'problem','val_pro' FROM dual
          UNION ALL 
          SELECT 'package','val_a' FROM dual
          UNION ALL 
          SELECT 'pad','val_a' FROM dual
            ) b;
      -- Reference the JAR resource that was just uploaded. You can find the resource in the resource management panel, right-click to reference it.
      --@resource_reference{"mapreduce-examples.jar"}
      jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_out
      Nota

      Descrição do código:

      • --@resource_reference: Clique com o botão direito no nome de um recurso na seção de gerenciamento de recursos e selecione Insert Resource Path para gerar essa instrução automaticamente.

      • -resources: Nome do arquivo de recurso JAR referenciado.

      • -classpath: Caminho do pacote JAR. Como o recurso já foi referenciado, o caminho é definido uniformemente para o pacote JAR em ./.

      • com.aliyun.odps.mapred.open.example.WordCount: Classe principal chamada durante a execução. Este valor deve corresponder exatamente ao nome da classe principal no pacote JAR.

      • wc_in: Nome da tabela de entrada do MR, criada no código anterior.

      • wc_out: Nome da tabela de saída do MR, criada no código anterior.

      • Se uma tarefa MR chamar vários recursos JAR, especifique o classpath no seguinte formato: -classpath ./xxxx1.jar,./xxxx2.jar. Separe os caminhos por vírgulas (,).

    Executar a tarefa MR

    1. Em Run Configuration, configure Compute Resource, Compute Quota e Resource Group.

      Nota

      Para acessar fontes de dados em ambientes de rede pública ou VPC, utilize um grupo de recursos de agendamento aprovado no teste de conectividade com a fonte de dados. Para mais informações, consulte Conectividade de rede.

    2. Na caixa de diálogo de parâmetros da barra de ferramentas, selecione a fonte de dados do MaxCompute criada anteriormente e clique em Run para executar a tarefa MR.

    (Opcional) Consultar os resultados

    Consulte os dados na tabela de saída wc_out usando um nó SQL do MaxCompute.

    SELECT * FROM wc_out;

    Resultado:

    +------------+------------+
    | key        | cnt        |
    +------------+------------+
    | package    | 1          |
    | pad        | 1          |
    | problem    | 1          |
    | project    | 1          |
    | val_a      | 2          |
    | val_pro    | 2          |
    +------------+------------+
  2. Para executar periodicamente a tarefa do nó, defina as configurações de agendamento conforme seus requisitos de negócios. Para mais informações, consulte Configurações de agendamento.

  3. Após configurar a tarefa do nó, implante-o. Para mais informações, consulte Implantar um nó.

  4. Depois de implantar a tarefa, visualize o status de execução da tarefa agendada no Operation Center. Para mais informações, consulte Tarefas agendadas.

Referências

Para mais cenários de desenvolvimento de tarefas ODPS MR, consulte os seguintes tópicos:

Para problemas comuns durante a execução de tarefas MR e soluções de solução de problemas, consulte FAQ.