Créez et planifiez des nœuds MaxCompute MR pour exécuter des programmes MapReduce qui traitent des ensembles de données à grande échelle dans MaxCompute à l'aide de l'API Java MapReduce.
Contexte
MapReduce est un framework de calcul distribué qui combine la logique métier écrite par l'utilisateur avec des composants intégrés pour former un programme distribué s'exécutant simultanément sur un cluster Hadoop. MaxCompute propose deux versions de l'interface de programmation MapReduce. Pour plus d'informations, consultez MapReduce.
MaxCompute MapReduce : API native de MaxCompute. Elle permet 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 prenant en charge une logique de planification des jobs plus complexe. Elle utilise la même implémentation que l'API native de MaxCompute.
Les nœuds MaxCompute MR dans DataWorks vous permettent de planifier et d'exécuter des tâches MapReduce, et de les intégrer à d'autres jobs.
Prérequis
Vous avez lié un moteur de calcul MaxCompute à l'espace de travail DataWorks.
Les ressources requises sont téléchargées et déployées. Pour plus d'informations, consultez gestion des ressources.
Téléchargez et déployez les ressources requises avant de créer un nœud MaxCompute MR.
Limites
Pour connaître les limites des nœuds MaxCompute MR, consultez Limites.
Procédure
-
Sur la page de l'éditeur de nœuds MaxCompute MR, suivez les étapes de développement ci-dessous.
Développer le code MR
L'exemple suivant montre comment utiliser un nœud MaxCompute MR pour
compter les occurrences de chaque chaîne dans la table wc_in et écrire les résultats dans la table wc_out.-
Téléchargez, soumettez et déployez la ressource mapreduce-examples.jar. Pour plus d'informations, consultez gestion des ressources.
RemarquePour obtenir des informations sur la logique d'implémentation du package
mapreduce-examples.jar, consultez Exemple WordCount. -
Dans l'éditeur de nœuds MaxCompute MR, saisissez l'exemple de code suivant.
--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_outRemarqueLe code est décrit comme suit :
--@resource_reference: cliquez avec le bouton droit sur un nom de ressource dans la section de gestion des ressources et sélectionnez Insert Resource Path pour générer automatiquement cette instruction.-resources: nom du fichier de ressource JAR référencé.-classpath: chemin d'accès au package JAR. Étant donné que la ressource est référencée, le chemin est uniformément défini sur le package JAR sous./.com.aliyun.odps.mapred.open.example.WordCount: classe principale appelée lors de l'exécution. Cette valeur doit correspondre au nom de la classe principale dans le package JAR.wc_in: nom de la table d'entrée MR, créée dans le code précédent.wc_out: nom de la table de sortie MR, créée dans le code précédent.Lorsqu'une tâche MR appelle plusieurs ressources JAR, le classpath est spécifié au format suivant :
-classpath ./xxxx1.jar,./xxxx2.jar. Les chemins sont séparés par des virgules (,).
Exécuter la tâche MR
-
Dans Run Configuration, configurez Compute Resource, Compute Quota et Resource Group.
RemarquePour accéder aux sources de données dans des environnements de réseau public ou VPC, utilisez un groupe de ressources pour la planification ayant réussi le test de connectivité avec la source de données. Pour plus d'informations, consultez Connectivité réseau.
Dans la boîte de dialogue des paramètres de la barre d'outils, sélectionnez la source de données MaxCompute que vous avez créée, puis cliquez sur Run pour exécuter la tâche MR.
(Facultatif) Interroger les résultats
Interrogez les données de la table de sortie
wc_outà l'aide d'un nœud SQL MaxCompute.SELECT * FROM wc_out;Résultat :
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+ -
Pour exécuter périodiquement la tâche de nœud, configurez les paramètres de planification en fonction de vos besoins métier. Pour plus d'informations, consultez Paramètres de planification.
Une fois la tâche de nœud configurée, déployez-la. Pour plus d'informations, consultez Déployer un nœud.
Après le déploiement de la tâche, affichez l'état d'exécution de la tâche planifiée dans Operation Center. Pour plus d'informations, consultez Tâches planifiées.
Références
Pour découvrir d'autres scénarios de développement de tâches ODPS MR, consultez les rubriques suivantes :
Pour consulter les problèmes courants lors de l'exécution des tâches MR et leurs solutions de dépannage, voir FAQ.