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 jaretadd 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 |
|
|
Indicateurs facultatifs contrôlant le chargement des ressources, la configuration et le mode d'exécution. Consultez la section Paramètres. |
|
|
Classe principale à exécuter. Exemple : |
|
|
Arguments transmis à la méthode |
Paramètres
Le tableau suivant décrit les options GENERIC_OPTIONS disponibles.
|
Paramètre |
Description |
|
|
Spécifie le fichier de configuration |
|
|
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 ( |
|
|
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 ( |
|
|
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. |
|
|
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 |
|
|
Enregistre les fichiers, les packages JAR et les tables auprès du cluster MaxCompute. |
Distribué (cluster) |
|
|
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.