Todos os produtos
Search
Central de documentação

MaxCompute:Submit a MapReduce job

Última atualização: Jun 26, 2026

Use o comando jar no cliente MaxCompute para enviar um job MapReduce empacotado como arquivo JAR.

Pré-requisitos

Antes de começar, verifique se você:

  • Adicionou os arquivos JAR e recursos necessários ao projeto MaxCompute usando os comandos add jar e add file.

  • Empacotou a classe principal e suas dependências e as manteve disponíveis localmente.

Sintaxe

jar [<GENERIC_OPTIONS>] <MAIN_CLASS> [ARGS];

Espaço reservado

Descrição

<GENERIC_OPTIONS>

Flags opcionais que controlam o carregamento de recursos, a configuração e o modo de execução. Consulte Parâmetros.

<MAIN_CLASS>

Classe principal a ser executada. Exemplo: com.example.Main.

[ARGS]

Argumentos passados ao método main da classe principal. Opcional.

Parâmetros

A tabela a seguir descreve as GENERIC_OPTIONS disponíveis.

Parâmetro

Descrição

-conf <configuration_file>

Especifique o arquivo de configuração JobConf, que contém ajustes equivalentes aos do JobConf no SDK. Consulte Formato do arquivo de configuração.

-resources <resource_name_list>

Defina os recursos necessários para execução distribuída no cluster. Liste os recursos usados pela função map, reduce ou ambas. Separe vários recursos com vírgulas (,). Para referenciar um recurso de outro projeto MaxCompute, adicione o prefixo PROJECT/resources/ (por exemplo, -resources otherproject/resources/resfile). Se a função map ou reduce ler recursos adicionais do MaxCompute durante a execução, inclua-os também nesta lista.

-classpath <local_file_list>

Indica o classpath para executar um job MapReduce no modo local. Forneça os caminhos locais relativos ou absolutos dos pacotes JAR que contêm a classe principal. No Windows, separe vários caminhos com ponto e vírgula (;); no Linux, use vírgulas (,). Ao executar o job em um servidor na nuvem, separe os nomes dos pacotes com vírgulas (,).

-D <name>=<value>

Defina uma propriedade Java para execução local da classe principal. Repita esta opção para definir várias propriedades.

-l

Execute o job no modo local, útil para depuração antes do envio ao cluster.

Execução distribuída versus execução local

As opções -resources e -classpath têm finalidades distintas e não são intercambiáveis:

Opção

Finalidade

Contexto de execução

-resources

Registra arquivos, pacotes JAR e tabelas no cluster MaxCompute

Distribuído (cluster)

-classpath

Define os caminhos locais usados quando o cliente MaxCompute inicia a classe principal

Local (máquina do cliente)

Se a classe principal estiver empacotada no mesmo JAR das funções map e reduce (situação comum no exemplo WordCount), o mesmo JAR aparecerá em ambas as opções, mas cumprirá papéis diferentes em cada uma.

Formato do arquivo de configuração

A opção -conf aceita um arquivo XML no seguinte formato:

<configuration>
   <property>
      <name>import.filename</name>
      <value>resource.txt</value>
   </property>
</configuration>

Este exemplo define a variável import.filename com o valor resource.txt. Recupere esse valor em tempo de execução usando a interface JobConf. Para um exemplo completo, consulte Exemplo de uso de recursos.

Exemplos

O exemplo a seguir mostra um comando jar típico com várias opções:

jar -conf \home\admin\myconf -resources a.txt,example.jar -classpath ..\lib\example.jar:.\other_lib.jar -D java.library.path=.\native;

Envie um job com um único JAR

Adicione o JAR ao projeto MaxCompute e envie o job:

add jar data\mapreduce-examples.jar;
jar -resources mapreduce-examples.jar -classpath data\mapreduce-examples.jar
    org.alidata.odps.mr.examples.WordCount wc_in wc_out;

O arquivo mapreduce-examples.jar aparece em ambas as opções: -resources o disponibiliza para as funções map e reduce no cluster, enquanto -classpath permite que o cliente localize a classe principal localmente.

Envie um job com um recurso de arquivo

Adicione um arquivo e um JAR ao projeto MaxCompute e envie o job:

add file data\src.txt;
add jar data\mapreduce-examples.jar;
jar -resources src.txt,mapreduce-examples.jar -classpath data\mapreduce-examples.jar
    org.alidata.odps.mr.examples.WordCount wc_in wc_out;

Tanto src.txt quanto mapreduce-examples.jar são registrados no cluster via -resources. O parâmetro -classpath aponta apenas para o JAR que contém a classe principal na máquina local.

Envie um job com um recurso de tabela e um arquivo de configuração

Crie um alias de tabela, adicione todos os recursos ao projeto MaxCompute e envie o job com um arquivo de configuração e uma propriedade Java personalizada:

add file data\a.txt;
add table wc_in as test_table;
add jar data\work.jar;
jar -conf odps-mapred.xml -resources a.txt,test_table,work.jar
    -classpath data\work.jar:otherlib.jar
    -D import.filename=resource.txt org.alidata.odps.mr.examples.WordCount args;

A flag -conf odps-mapred.xml carrega um arquivo de configuração JobConf. O parâmetro -D import.filename=resource.txt substitui uma propriedade específica para execução local. test_table é um alias de tabela criado a partir de wc_in usando o comando add table.

Próximos passos

  • Exemplo WordCount — Exemplo completo de ponta a ponta de MapReduce que demonstra como escrever, empacotar e enviar um job WordCount.

  • Exemplo de uso de recursos — Exemplos de leitura de recursos de arquivo, JAR e tabela nas funções map e reduce.