Tous les produits
Search
Centre de documentation

MaxCompute:Développer une tâche MapReduce MaxCompute

Dernière mise à jour :Aug 20, 2026

Créez un nœud ODPS MR pour écrire et planifier des programmes MapReduce qui traitent les données dans MaxCompute à l'aide des API Java MapReduce.

Prérequis

Important

Chargez, soumettez et publiez les ressources requises avant de créer un nœud ODPS MR.

Contexte

MapReduce est un framework de programmation distribué qui combine la logique métier écrite par l'utilisateur avec des composants intégrés pour s'exécuter simultanément sur un cluster Hadoop. MaxCompute propose deux versions de l'interface de programmation MapReduce. Pour plus d'informations, consultez la rubrique MapReduce.

  • MaxCompute MapReduce : interface native de MaxCompute. Elle offre une exécution rapide et un développement accéléré sans exposer le système de fichiers.

  • Extended MaxCompute MapReduce (MR2) : extension de MaxCompute MapReduce qui prend en charge une logique de planification de tâches plus complexe. L'implémentation est identique à celle de l'interface native.

Dans DataWorks, utilisez un nœud ODPS MR pour planifier et exécuter des tâches MaxCompute MapReduce et les intégrer à d'autres jobs.

Limites

Pour connaître les limites des nœuds ODPS MR, consultez la rubrique Limites d'utilisation.

Exemple : un job WordCount simple

Cet exemple utilise un nœud ODPS MR pour compter les occurrences de chaque chaîne dans la table wc_in et écrire les résultats dans la table wc_out.

  1. Chargez, soumettez et publiez la ressource mapreduce-examples.jar. Pour plus d'informations, consultez la rubrique Créer et utiliser des ressources MaxCompute.

    Remarque

    Pour plus d'informations sur la logique d'implémentation au sein du package mapreduce-examples.jar, consultez la rubrique Exemple WordCount.

  2. Saisissez le code suivant dans le nœud ODPS MR et exécutez-le.

    -- 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 this pseudo-table does not exist in the workspace, you must create it and initialize data.
        --- Initialize the data in 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 you just uploaded. You can find this resource in the resource list, right-click the resource, and then select Reference Resources.
    --@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

    Le code inclut les instructions et paramètres suivants :

    • --@resource_reference : cliquez avec le bouton droit sur le nom d'une ressource et sélectionnez Insert Resource Path pour générer automatiquement cette instruction.

    • -resources : nom de fichier de la ressource JAR référencée.

    • -classpath : chemin d'accès au package JAR. Étant donné que la ressource est déjà référencée, le chemin pointe vers le fichier JAR dans le répertoire actuel (./).

    • com.aliyun.odps.mapred.open.example.WordCount : nom complet de la classe principale à exécuter à partir du fichier JAR.

    • wc_in : nom de la table d'entrée pour le job MapReduce. Cette table est créée dans le code précédent.

    • wc_out : nom de la table de sortie pour le job MapReduce. Cette table est créée dans le code précédent.

    • Si un job MapReduce nécessite plusieurs ressources JAR, séparez les chemins par une virgule, par exemple -classpath ./xxxx1.jar,./xxxx2.jar.

    Résultat : OK

  3. Dans un nœud ODPS SQL, exécutez la commande suivante pour interroger les données de la table wc_out.

    select * from wc_out;

    Sortie attendue :

    +------------+------------+
    | key        | cnt        |
    +------------+------------+
    | package    | 1          |
    | pad        | 1          |
    | problem    | 1          |
    | project    | 1          |
    | val_a      | 2          |
    | val_pro    | 2          |
    +------------+------------+

Exemples avancés

Pour découvrir d'autres scénarios de développement de tâches MaxCompute MapReduce, consultez les rubriques suivantes :

Étapes suivantes

Après avoir développé un nœud, effectuez les opérations suivantes selon vos besoins :

  • Configuration de la planification : configurez les propriétés de planification périodique, telles que les paramètres de réexécution et les dépendances pour les tâches qui s'exécutent régulièrement. Consultez la rubrique Présentation de la configuration de la planification des tâches.

  • Débogage des tâches : testez et exécutez le code du nœud pour vérifier sa logique. Consultez la rubrique Processus de débogage des tâches.

  • Déploiement des tâches : déployez les nœuds pour les exécuter périodiquement en fonction de leurs configurations de planification. Consultez la rubrique Déployer des tâches.

  • FAQ MapReduce : problèmes courants et dépannage des tâches MapReduce.