Todos os produtos
Search
Central de documentação

DataWorks:Nó MR do MaxCompute

Última atualização: Jun 27, 2026

O MaxCompute oferece interfaces de programação MapReduce. Crie e agende um nó MR do MaxCompute para usar a API Java do MapReduce na escrita de programas que processam grandes conjuntos de dados no MaxCompute.

Contexto

O MapReduce é um framework de computação distribuída. Ele combina o código de lógica de negócios escrito pelo usuário com componentes integrados para formar um programa distribuído completo, executado simultaneamente em um cluster Hadoop. O MaxCompute disponibiliza duas versões da interface de programação MapReduce. Para mais detalhes, consulte MapReduce.

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

  • MaxCompute MapReduce Estendido (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.

No DataWorks, use um nó MR do MaxCompute para agendar e executar tarefas MapReduce do MaxCompute e integrá-las a outros jobs.

Pré-requisitos

Nota

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

Limitações

Para detalhes sobre as limitações dos nós MR do MaxCompute, consulte 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 informações, consulte gerenciamento de recursos.

      Nota

      Para entender 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 invocada 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, também criada no código anterior.

      • Quando uma tarefa MR utiliza múltiplos 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, use um grupo de recursos de agendamento que tenha passado 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 MaxCompute criada 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 a tarefa do nó periodicamente, defina as configurações de agendamento conforme suas necessidades de negócio. Para mais detalhes, 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 detalhes, consulte Tarefas agendadas.

Referências

Para conhecer outros cenários de desenvolvimento de tarefas ODPS MR, consulte os tópicos a seguir:

Perguntas frequentes: Conheça os problemas comuns que podem ocorrer durante a execução de tarefas MR e aprenda a solucioná-los rapidamente. Para mais informações, consulte FAQ.