Développez et planifiez périodiquement des tâches Spark sur un cluster EMR Serverless Spark dans DataWorks. Spark prend en charge le calcul complexe en mémoire, ce qui le rend particulièrement adapté à l'analyse de données à grande échelle et à faible latence.
Prérequis
Limitations des ressources de calcul : Seules les ressources de calcul EMR Serverless Spark liées sont prises en charge. Assurez-vous que le groupe de ressources et la ressource de calcul peuvent communiquer via le réseau.
Contraintes du groupe de ressources : Seuls les groupes de ressources Serverless peuvent exécuter ce type de tâche.
-
(Facultatif, pour les utilisateurs RAM) L'utilisateur Resource Access Management (RAM) chargé du développement de la tâche doit être ajouté à l'espace de travail et se voir attribuer le rôle Development ou Workspace Administrator (ce rôle inclut des autorisations étendues et doit être accordé avec prudence). Pour plus d'informations, consultez la rubrique Ajouter des membres à un espace de travail.
Si vous utilisez un compte racine, ignorez cette étape.
Créer un nœud
Pour obtenir des instructions, consultez la rubrique Créer un nœud.
Développer le nœud
Avant de développer une tâche Serverless Spark Batch, développez le code de la tâche Spark dans E-MapReduce (EMR) et compilez-le dans un package JAR. Pour obtenir des conseils sur le développement Spark, consultez les tutoriels Spark.
Choisissez l'approche qui correspond le mieux à votre cas d'utilisation :
Option 1 : Télécharger et référencer un JAR EMR
Téléchargez le package JAR compilé vers DataWorks en tant que ressource EMR JAR. Cette approche convient aux packages JAR inférieurs à 500 Mo.
-
Créez une ressource EMR JAR.
Dans le volet de navigation de gauche, cliquez sur l'icône
pour accéder à la page Resource Management.Sur la page Resource Management, cliquez sur l'icône
, sélectionnez , puis nommez la ressource spark-examples_2.11-2.4.0.jar.Cliquez sur Click Upload et téléchargez le fichier spark-examples_2.11-2.4.0.jar.
-
Sélectionnez un Storage Path, une Data Sources et un Resource Group.
ImportantPour la source de données, vous devez sélectionner le cluster EMR Serverless Spark lié.
Cliquez sur Save.
-
Référencez la ressource EMR JAR.
Ouvrez le nœud Serverless Spark Batch que vous avez créé et restez sur la page de l'éditeur de code.
Dans le volet Gestion des ressources sur la gauche, recherchez la ressource que vous souhaitez utiliser, faites un clic droit dessus et sélectionnez Insert Resource Path.
-
La ressource est correctement référencée lorsque le code suivant est automatiquement ajouté à l'éditeur de code du nœud Serverless Spark Batch :
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-examples_2.11-2.4.0.jarDans le code précédent, spark-examples_2.11-2.4.0.jar correspond au nom de la ressource EMR JAR que vous avez téléchargée.
-
Modifiez le code du nœud en ajoutant la commande spark-submit. L'exemple suivant montre le code modifié.
ImportantSuivez l'exemple à la lettre. N'ajoutez pas de commentaires, car ils entraîneraient l'échec du nœud.
Pour EMR Serverless Spark, vous n'avez pas besoin de définir le paramètre
deploy-modepour la commandespark-submit. Seul le modeclusterest pris en charge.
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.0.jar 100Commande
Description
classClasse principale de l'application dans le fichier JAR. Dans cet exemple, la valeur est
org.apache.spark.examples.SparkPi.RemarquePour plus d'informations sur les paramètres, consultez la rubrique Soumettre une tâche à l'aide de spark-submit.
Option 2 : Référencer une ressource OSS
Référencez une ressource stockée dans Object Storage Service (OSS). DataWorks charge automatiquement la ressource OSS spécifiée au moment de l'exécution. Utilisez cette approche lorsqu'une tâche EMR nécessite des dépendances JAR ou dépend de scripts.
Développez la ressource JAR : Cette rubrique utilise SparkWorkOSS-1,0-SNAPSHOT-jar-with-dependencies.jar à titre d'exemple.
-
Téléchargez la ressource JAR.
Connectez-vous à la console OSS. Dans le volet de navigation de gauche, cliquez sur buckets.
Cliquez sur le nom du bucket cible pour accéder à la page de gestion des fichiers.
Cliquez sur Create Directory pour créer un répertoire destiné à stocker la ressource JAR.
Accédez au répertoire et téléchargez le fichier
SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jardans le bucket.
-
Référencez la ressource JAR.
-
Dans l'éditeur de code du nœud Serverless Spark Batch que vous avez créé, écrivez le code permettant de référencer la ressource JAR.
ImportantDans le code suivant, le nom du bucket OSS est
mybucketet le répertoire estemr. Remplacez-les par vos valeurs réelles.spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo oss://mybucket/emr/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jarParamètres :
Paramètre
Description
classNom complet de la classe principale à exécuter.
osschemin du fichierLe format est
oss://{bucket}/{object}.-
bucket : Conteneur OSS qui stocke les objets. Chaque bucket possède un nom unique. Vous pouvez vous connecter à la console OSS pour afficher tous les buckets associés à votre compte.
-
object : Fichier ou chemin stocké dans un bucket.
RemarquePour plus d'informations sur les paramètres, consultez la rubrique Soumettre une tâche à l'aide de spark-submit.
-
-
Déboguer le nœud
-
Dans le volet Run Configuration, configurez les paramètres tels que Compute resource et resource group.
Paramètre
Description
Compute resource
Sélectionnez une ressource de calcul EMR Serverless Spark liée. Si aucune n'est disponible, sélectionnez Create Compute Resource dans la liste déroulante.
resource group
Sélectionnez un groupe de ressources lié à l'espace de travail.
Script parameters
Définissez des variables dans le code du nœud en utilisant le format
${Parameter name}. Définissez ensuite le Parameter name et la Parameter Value dans la section Script Parameters. Au moment de l'exécution, DataWorks remplace ces variables par les valeurs spécifiées. Pour plus d'informations, consultez la rubrique Paramètres de planification.ServerlessSpark node parameters
Paramètres d'exécution pour le programme Spark. Les types suivants sont pris en charge :
-
Paramètres d'exécution personnalisés pour DataWorks. Pour plus d'informations, consultez l'Annexe : Paramètres DataWorks.
-
Propriétés intégrées à Spark. Pour plus d'informations, consultez les propriétés Spark open source et les paramètres Spark Conf personnalisés.
Le format de configuration est :
"spark.eventLog.enabled": false. DataWorks ajoute automatiquement ce paramètre au code soumis à Serverless Spark au format--conf key=value.RemarqueVous pouvez définir des paramètres Spark globaux au niveau de l'espace de travail et spécifier s'ils ont la priorité sur les paramètres définis dans un module spécifique. Pour plus de détails, consultez la rubrique Configurer les paramètres Spark globaux.
-
-
Dans la barre d'outils en haut de l'éditeur de nœud, cliquez sur Run.
ImportantAvant la publication, vous devez synchroniser les ServerlessSpark node parameters dans la section Run Configuration avec les ServerlessSpark node parameters dans la section Scheduling Settings.
Étapes suivantes
Configurer la planification des nœuds : Si vous devez exécuter un nœud périodiquement, configurez sa Scheduling Policy dans le volet Scheduling Settings situé à droite.
Publier un nœud : Pour exécuter une tâche dans l'environnement de production, cliquez sur l'icône
afin de publier le nœud. Un nœud ne s'exécute selon la planification qu'après sa publication dans l'environnement de production.O&M des tâches : Une fois une tâche publiée, surveillez ses exécutions périodiques dans le centre d'opérations. Pour plus d'informations, consultez la rubrique Prise en main du centre d'opérations.
Documentation connexe
Annexe : Paramètres DataWorks
|
Paramètre |
Description |
|
SERVERLESS_QUEUE_NAME |
File d'attente de ressources à laquelle la tâche est soumise. Par défaut, les tâches sont soumises à la Default Resource Queue configurée pour le cluster sous Clusters dans le Management Center. Pour isoler et gérer les ressources, vous pouvez ajouter des files d'attente. Pour plus d'informations, consultez la rubrique Gérer les files d'attente de ressources. Méthodes de configuration :
|