Cette rubrique explique comment accéder au système de fichiers virtuel Paimon (PVFS) dans un environnement EMR sur ECS.
Prérequis
Créez un cluster EMR (version 5.12.0 ou ultérieure) en sélectionnant les composants Spark3 et Paimon. Si vous avez besoin d'une version différente, contactez l'équipe de développement Data Lake Formation (DLF) en rejoignant le groupe DingTalk (106575000021).
Un Catalogue DLF est créé.
Le cluster EMR et DLF se trouvent dans la même région, et le VPC du cluster EMR a été ajouté à la liste d'autorisation de DLF.
Accorder des autorisations DLF à un rôle
-
Accordez des autorisations RAM au rôle AliyunECSInstanceForEMRRole. (Cette étape n'est pas requise une fois la fonctionnalité intégrée à EMR.)
Connectez-vous à la console RAM avec votre compte Alibaba Cloud ou en tant qu'administrateur RAM.
Choisissez , puis recherchez le rôle AliyunECSInstanceForEMRRole.
Dans la colonne Actions, cliquez sur Add Permissions.
Dans la section Permission policy, recherchez et sélectionnez AliyunDLFFullAccess. Cliquez ensuite sur OK.
-
Accordez des autorisations DLF au rôle AliyunECSInstanceForEMRRole.
Connectez-vous à la console Data Lake Formation.
Sur la page de liste Catalog, cliquez sur le nom de votre catalogue pour ouvrir sa page de détails.
Cliquez sur l'onglet Permissions, puis cliquez sur Grant.
-
Configurez les paramètres suivants et cliquez sur OK.
User/Role : Sélectionnez RAM User/RAM Role.
-
Select Authorization Object : Dans la liste déroulante, sélectionnez AliyunECSInstanceForEMRRole.
RemarqueSi vous ne trouvez pas AliyunECSInstanceForEMRRole dans la liste déroulante, accédez à la page de gestion des utilisateurs et cliquez sur Sync.
Preset Permission Type : Sélectionnez Data Editor.
Mettre à niveau les dépendances Paimon dans le cluster
-
Mettez à niveau les dépendances suivantes vers la version 1.3 ou ultérieure :
-
Selon votre version de Spark, sélectionnez la dépendance paimon-spark correspondante et mettez-la à niveau vers la version 1.3 ou ultérieure.
Depuis le référentiel Maven, sélectionnez la dépendance appropriée. Par exemple, si vous utilisez Spark 3.2, choisissez
paimon-spark-3.2-1.3.0ou une version ultérieure.
-
Téléchargez les dépendances.
Téléchargez les quatre packages de dépendances vers OSS et définissez leurs autorisations de fichier sur Public Read. Pour plus d'informations, consultez la rubrique Téléchargement simple.
-
Écrivez un script et téléchargez-le sur OSS.
#!/bin/bash echo 'prepare paimon-vfs in hadoop classpath' cd /opt/apps/JINDOSDK/jindosdk-current/lib rm -rf paimon-* wget ${paimon_vfs_jar} wget ${paimon_jindo_jar} wget ${paimon_bundle_jar} echo 'prepare paimon-spark in spark classpath' rm -rf /opt/apps/PAIMON/paimon-dlf rm -rf /opt/apps/PAIMON/paimon-dlf.tar.gz.* mkdir -p /opt/apps/PAIMON/paimon-dlf/lib/spark3 cd /opt/apps/PAIMON/paimon-dlf/lib/spark3 wget ${paimon_spark_jar} rm -f /opt/apps/PAIMON/paimon-current ln -sf /opt/apps/PAIMON/paimon-dlf /opt/apps/PAIMON/paimon-currentImportantRemplacez les espaces réservés dans le script, tels que
${paimon_vfs_jar},${paimon_jindo_jar},${paimon_bundle_jar}et${paimon_spark_jar}, par leurs chemins de téléchargement OSS. Par défaut, les clusters EMR sur ECS ne peuvent pas accéder au réseau public. Exemples :Réseau interne :
https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-jindo-1.3.0.jar.Réseau public :
https://{bucket}.oss-cn-hangzhou.aliyuncs.com/jars/paimon-jindo-1.3.0.jar.
-
Exécutez le script sur le cluster EMR à l'aide d'une action de script. Pour plus d'informations, consultez la rubrique Exécuter un script manuellement.
Dans la console du cluster EMR, accédez à l'onglet , puis cliquez sur Create and Run.
-
Configurez les paramètres suivants et cliquez sur OK.
Name : Saisissez un nom personnalisé pour le script.
Script Location : Sélectionnez le script de mise à niveau que vous avez téléchargé sur OSS. Le chemin du script doit être au format oss://**/*.sh.
Execution scope : Sélectionnez Cluster.
Une fois le script exécuté, redémarrez les services Spark et Hive pour que les modifications prennent effet.
Mettre à jour la configuration du cluster EMR
Dans la console du cluster EMR, accédez à .
-
Dans la section
core-site.xml, cliquez sur Add configuration item.Paramètre
Valeur
fs.AbstractFileSystem.pvfs.impl
org.apache.paimon.vfs.hadoop.Pvfs
fs.pvfs.impl
org.apache.paimon.vfs.hadoop.PaimonVirtualFileSystem
fs.pvfs.uri
cn-hangzhou-vpc.dlf.aliyuncs.com
RemarqueRemplacez la valeur par le endpoint de votre région. Pour plus d'informations, consultez la rubrique Endpoints.
fs.pvfs.token.provider
dlf
fs.pvfs.dlf.token-loader
ecs
Accéder aux fichiers dans DLF
Après avoir créé une Table d'objets, vous pouvez accéder à ses données en utilisant le schéma pvfs://.
Accéder aux données via le shell Hadoop
Téléchargez un fichier CSV vers la Table d'objets en utilisant le shell Hadoop.
# Upload the CSV file
echo "James,Sales,3000" >> employee.csv
hadoop fs -put employee.csv pvfs://catalog_name/default/object_table/
# List all files in the Object Table
hadoop fs -ls pvfs://catalog_name/default/object_table/
# View the CSV file
hadoop fs -cat pvfs://catalog_name/default/object_table/employee.csv
Accéder aux données via Hive
Vous pouvez interroger le fichier CSV dans la Table d'objets en utilisant Hive.
# Connect to Hive
beeline -u jdbc:hive2://localhost:10000
# Create a temporary table to map the CSV file
CREATE TEMPORARY TABLE temp_table (
employee_name STRING,
department STRING,
salary INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 'pvfs://catalog_name/default/object_table/';
# Query the temporary table
SELECT * FROM temp_table;
Accéder aux données via Spark
Vous pouvez interroger le fichier CSV dans la Table d'objets en utilisant Spark.
# Start spark-sql
spark-sql
# Create a temporary view to map the CSV file
CREATE TEMPORARY VIEW temp_table
USING csv
OPTIONS (
path 'pvfs://catalog_name/default/object_table',
inferSchema 'false',
schema 'employee_name STRING, department STRING, salary INT'
);
# Query the temporary view
SELECT * FROM temp_table;