Tous les produits
Search
Centre de documentation

MaxCompute:Submit a MapReduce job

Dernière mise à jour :Aug 10, 2026

Utilisez la commande jar du client MaxCompute pour soumettre une tâche MapReduce empaquetée dans un fichier JAR.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Ajouté les fichiers JAR et les ressources requis à votre projet MaxCompute à l'aide des commandes add jar et add file.

  • Empaqueté la classe principale et ses dépendances, et les avoir rendues disponibles localement.

Syntaxe

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

Espace réservé

Description

<GENERIC_OPTIONS>

Indicateurs facultatifs contrôlant le chargement des ressources, la configuration et le mode d'exécution. Consultez la section Paramètres.

<MAIN_CLASS>

Classe principale à exécuter. Exemple : com.example.Main.

[ARGS]

Arguments transmis à la méthode main de la classe principale. Facultatif.

Paramètres

Le tableau suivant décrit les options GENERIC_OPTIONS disponibles.

Paramètre

Description

-conf <configuration_file>

Spécifie le fichier de configuration JobConf, qui contient des paramètres équivalents à ceux de JobConf dans le SDK. Consultez la section Format du fichier de configuration.

-resources <resource_name_list>

Spécifie les ressources requises pour l'exécution distribuée sur le cluster. Répertoriez les ressources utilisées par votre fonction map, votre fonction reduce, ou les deux. Séparez plusieurs ressources par des virgules (,). Pour référencer une ressource depuis un autre projet MaxCompute, préfixez-la avec PROJECT/resources/ — par exemple, -resources otherproject/resources/resfile. Si vos fonctions map ou reduce lisent des ressources MaxCompute supplémentaires au moment de l'exécution, incluez-les également dans cette liste.

-classpath <local_file_list>

Spécifie le classpath pour l'exécution d'une tâche MapReduce en mode local. Indiquez les chemins d'accès locaux relatifs ou absolus vers les packages JAR contenant la classe principale. Séparez plusieurs chemins par des points-virgules (;) sous Windows, ou par des virgules (,) sous Linux. Si vous exécutez une tâche MapReduce sur un serveur cloud, séparez les noms de package par des virgules (,).

-D <name>=<value>

Définit une propriété Java pour l'exécution locale de la classe principale. Spécifiez cette option plusieurs fois pour définir plusieurs propriétés.

-l

Exécute la tâche en mode local, ce qui s'avère utile pour le débogage avant la soumission au cluster.

Exécution distribuée vs. exécution locale

Les options -resources et -classpath ont des objectifs différents et ne sont pas interchangeables :

Option

Objectif

Contexte d'exécution

-resources

Enregistre les fichiers, les packages JAR et les tables auprès du cluster MaxCompute.

Distribué (cluster)

-classpath

Spécifie les chemins d'accès locaux utilisés lorsque le client MaxCompute démarre la classe principale.

Local (machine cliente)

Si la classe principale est empaquetée dans le même JAR que vos fonctions map et reduce — comme c'est souvent le cas dans l'exemple WordCount — le même JAR apparaît dans les deux options, mais y joue un rôle différent.

Format du fichier de configuration

L'option -conf accepte un fichier XML au format suivant :

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

Cet exemple définit une variable nommée import.filename avec la valeur resource.txt. Récupérez la valeur au moment de l'exécution à l'aide de l'interface JobConf. Pour un exemple complet, consultez la rubrique Exemple d'utilisation des ressources.

Exemples

L'exemple suivant illustre une commande jar typique avec plusieurs options :

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

Soumettre une tâche avec un seul JAR

Ajoutez le JAR au projet MaxCompute, puis soumettez la tâche :

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;

Le fichier mapreduce-examples.jar apparaît dans les deux options : l'option -resources le rend disponible pour les fonctions map et reduce sur le cluster, tandis que l'option -classpath permet au client de localiser la classe principale localement.

Soumettre une tâche avec une ressource de type fichier

Ajoutez un fichier et un JAR au projet MaxCompute, puis soumettez la tâche :

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;

Les éléments src.txt et mapreduce-examples.jar sont enregistrés auprès du cluster via l'option -resources. L'option -classpath pointe uniquement vers le JAR contenant la classe principale sur la machine locale.

Soumettre une tâche avec une ressource de type table et un fichier de configuration

Créez un alias de table, ajoutez toutes les ressources au projet MaxCompute, puis soumettez la tâche avec un fichier de configuration et une propriété Java personnalisée :

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;

L'option -conf odps-mapred.xml charge un fichier de configuration JobConf. L'option -D import.filename=resource.txt remplace une seule propriété pour l'exécution locale. test_table est un alias de table créé à partir de wc_in à l'aide de la commande add table.

Étapes suivantes

  • Exemple WordCount — Exemple complet de bout en bout de MapReduce montrant comment écrire, empaqueter et soumettre une tâche WordCount.

  • Exemple d'utilisation des ressources — Exemples de lecture de ressources de type fichier, JAR et table dans les fonctions map et reduce.