Le moteur Spark d'AnalyticDB for MySQL vous permet d'accéder aux données stockées dans Object Storage Service (OSS), qu'elles appartiennent à votre propre compte Alibaba Cloud (accès intra-compte) ou à un autre compte (accès inter-comptes). Cette rubrique explique comment configurer ces deux types d'accès.
Prérequis
Vous avez créé un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Vous avez créé un bucket Object Storage Service (OSS) dans la même région que le cluster AnalyticDB for MySQL.
Vous avez créé un groupe de ressources de tâches pour le cluster AnalyticDB for MySQL.
-
Vous avez créé un compte de base de données pour le cluster AnalyticDB for MySQL.
Si vous utilisez un compte Alibaba Cloud, il vous suffit de créer un compte privilégié.
Si vous utilisez un utilisateur RAM (Resource Access Management), vous devez créer un compte privilégié et un compte standard, puis associer le compte standard à l'utilisateur RAM.
-
Vous avez configuré les autorisations nécessaires. Pour plus d'informations, consultez la section Autorisation rapide.
ImportantL'accès intra-compte nécessite l'autorisation AliyunADBSparkProcessingDataRole. Pour l'accès inter-comptes, vous devez accorder les autorisations appropriées à l'autre compte Alibaba Cloud.
Étape 1 : Préparation des données
-
Préparez un fichier texte et téléchargez-le dans un bucket OSS. Cet exemple utilise un fichier nommé
readme.txt. Pour plus d'informations, consultez la section Télécharger des fichiers.AnalyticDB for MySQL Database product -
Rédigez un script Python et téléchargez-le dans le bucket OSS. L'exemple ci-dessous utilise un script nommé
example.pyqui lit la première ligne du fichier readme.txt.import sys from pyspark.sql import SparkSession # Initialize Spark. spark = SparkSession.builder.appName('OSS Example').getOrCreate() # Read the specified file. The file path is passed as an argument from 'args'. textFile = spark.sparkContext.textFile(sys.argv[1]) # Count and print the total number of lines in the file. print("File total lines: " + str(textFile.count())) # Print the first line of the file. print("First line is: " + textFile.first())
Étape 2 : Accès aux données OSS
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters. Localisez le cluster cible et cliquez sur son ID.
Dans le volet de navigation de gauche, accédez à .
Au-dessus de l'éditeur, sélectionnez un groupe de ressources de tâches et un type d'application Spark. Cet exemple utilise le type Batch.
-
Dans l'éditeur, saisissez le code Spark suivant pour lire le fichier depuis OSS et afficher le nombre total de lignes ainsi que la première ligne.
Accès intra-compte
{ "args": ["oss://testBucketName/data/readme.txt"], "name": "spark-oss-test", "file": "oss://testBucketName/data/example.py", "conf": { "spark.driver.resourceSpec": "small", "spark.executor.resourceSpec": "small", "spark.executor.instances": 1 } }Paramètres :
Paramètre
Description
args
Arguments de l'application Spark.
Dans cet exemple, le chemin OSS du fichier texte est assigné à
textFile.name
Nom de l'application Spark.
file
Chemin de stockage du fichier principal de l'application Spark. Ce fichier peut être un package JAR contenant la classe d'entrée ou un script Python exécutable.
ImportantLe fichier principal d'une application Spark ne peut actuellement être stocké que dans OSS.
spark.adb.roleArn
Rôle RAM utilisé pour l'accès inter-comptes à une source de données externe. Vous pouvez spécifier plusieurs rôles en les séparant par des virgules (,). Le format est
acs:ram::<testAccountID>:role/<testUserName>.-
<testAccountID>: ID du compte Alibaba Cloud propriétaire de la source de données externe. -
<testUserName>: Nom du rôle RAM créé pour l'autorisation inter-comptes. Pour plus d'informations, consultez Autoriser les comptes.
RemarqueCe paramètre n'est pas requis pour l'accès intra-compte à OSS.
conf
Paramètres de configuration de l'application Spark. Ils sont généralement conformes aux paramètres standards d'Apache Spark. Le format est
key: value. Séparez plusieurs paramètres par des virgules (,). Pour les paramètres spécifiques à AnalyticDB for MySQL ou différents d'Apache Spark, consultez la section Paramètres de configuration des applications Spark.Accès inter-comptes
{ "args": ["oss://testBucketName/data/readme.txt"], "name": "CrossAccount", "file": "oss://testBucketName/data/example.py", "conf": { "spark.adb.roleArn": "acs:ram::testAccountID:role/<testUserName>", "spark.driver.resourceSpec": "small", "spark.executor.resourceSpec": "small", "spark.executor.instances": 1 } }Paramètres :
Paramètre
Description
args
Arguments de l'application Spark.
Dans cet exemple, le chemin OSS du fichier texte est assigné à
textFile.name
Nom de l'application Spark.
file
Chemin de stockage du fichier principal de l'application Spark. Ce fichier peut être un package JAR contenant la classe d'entrée ou un script Python exécutable.
ImportantLe fichier principal d'une application Spark ne peut actuellement être stocké que dans OSS.
spark.adb.roleArn
Rôle RAM utilisé pour l'accès inter-comptes à une source de données externe. Vous pouvez spécifier plusieurs rôles en les séparant par des virgules (,). Le format est
acs:ram::<testAccountID>:role/<testUserName>.-
<testAccountID>: ID du compte Alibaba Cloud propriétaire de la source de données externe. -
<testUserName>: Nom du rôle RAM créé pour l'autorisation inter-comptes. Pour plus d'informations, consultez Autoriser les comptes.
RemarqueCe paramètre n'est pas requis pour l'accès intra-compte à OSS.
conf
Paramètres de configuration de l'application Spark. Ils sont généralement conformes aux paramètres standards d'Apache Spark. Le format est
key: value. Séparez plusieurs paramètres par des virgules (,). Pour les paramètres spécifiques à AnalyticDB for MySQL ou différents d'Apache Spark, consultez la section Paramètres de configuration des applications Spark. -
-
Cliquez sur Run Now.
Une fois la tâche terminée, vous pouvez consulter la sortie dans les journaux de la tâche. Pour ce faire, accédez à la page Spark JAR Development, ouvrez l'onglet Applications et cliquez sur Logs pour votre tâche. Pour plus d'informations, consultez la section Éditeur de développement Spark.
Références
Pour une vue d'ensemble du développement d'applications Spark, consultez la section Présentation du développement d'applications Spark.
Pour obtenir des détails sur les paramètres de configuration des applications Spark, consultez la section Paramètres de configuration des applications Spark.