Pour gérer les fichiers dans Object Storage Service (OSS) ou OSS-HDFS depuis un cluster EMR, JindoSDK vous permet d'utiliser les mêmes commandes Hadoop Shell standard. Seul l'endpoint inclus dans le chemin diffère.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un bucket OSS avec les autorisations d'accès appropriées
JindoSDK disponible dans votre environnement (voir Configuration de l'environnement)
Configuration de l'environnement
| Environnement | Configuration requise |
|---|---|
| Cluster EMR | JindoSDK est préinstallé. Aucune configuration supplémentaire n'est nécessaire. |
| Environnement non-EMR | Installez d'abord JindoSDK. Consultez la rubrique Déploiement de JindoSDK dans un environnement autre qu'EMR. |
Exigences de version pour OSS-HDFS :
| Environnement | Version minimale |
|---|---|
| Cluster EMR | EMR V3.42.0 ou version ultérieure (version mineure), ou EMR V5.8.0 ou version ultérieure (version mineure) |
| Environnement non-EMR | JindoSDK V4.X ou version ultérieure |
Référence du format URI
Les commandes pour OSS et OSS-HDFS sont identiques. La seule différence réside dans l'endpoint intégré au chemin.
| Stockage | Modèle d'endpoint | Exemple de chemin |
|---|---|---|
| OSS-HDFS | <region>.oss-dls.aliyuncs.com |
oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/ |
Tous les exemples de cette rubrique utilisent le format d'endpoint OSS-HDFS.
Les opérations de renommage dans le stockage objet sont proportionnelles au volume de données concerné. Des commandes telles que-put,-cpet-mvpeuvent être considérablement plus lentes sur les grands répertoires par rapport à HDFS.
Commandes
Télécharger un fichier
hadoop fs -put examplefile.txt oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
Cette commande télécharge examplefile.txt depuis le répertoire racine local vers examplebucket.
Options utiles :
| Option | Description |
|---|---|
-f |
Écrase la destination si elle existe déjà |
-d |
Ignore le fichier temporaire intermédiaire ._COPYING_. Utilisez cet indicateur lors du téléchargement vers le stockage objet pour éviter les opérations de renommage inutiles |
Conseil : Utilisez toujours l'option-dlors du téléchargement vers OSS ou OSS-HDFS. Sans celle-ci, Hadoop crée un fichier temporaire._COPYING_et le renomme une fois l'opération terminée, ce qui ajoute une latence proportionnelle à la taille du fichier.
Créer un répertoire
hadoop fs -mkdir oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/dir/
Cette commande crée un répertoire nommé dir/ dans examplebucket.
Lister les fichiers ou les répertoires
hadoop fs -ls oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
Cette commande liste tous les fichiers et répertoires présents dans examplebucket.
Options utiles :
| Option | Description |
|---|---|
-R |
Liste récursivement tous les sous-répertoires |
-h |
Affiche les tailles de fichier dans un format lisible (Ko, Mo, Go) |
Vérifier l'utilisation du disque
hadoop fs -du oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/
Cette commande indique les tailles de tous les fichiers et répertoires dans examplebucket.
L'utilisation de la commande -du sur de grands buckets peut être lente avec le stockage objet. Évitez de l'exécuter fréquemment sur des buckets contenant de nombreux objets.
Afficher le contenu d'un fichier
hadoop fs -cat oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/localfile.txt
Cette commande affiche le contenu de localfile.txt en texte brut.
Si le contenu du fichier est encodé, utilisez l'API HDFS pour Java afin de le lire et de le décoder. La commande -cat ne décode pas le contenu encodé.
Copier des fichiers ou des répertoires
hadoop fs -cp oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir1 \
oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/subdir2/subdir1
Cette commande copie subdir1 vers subdir2/subdir1, en préservant la structure des répertoires, l'emplacement des fichiers et le contenu de tous les sous-répertoires.
La commande -cp est lente sur les grands répertoires avec le stockage objet, car les opérations de renommage sont proportionnelles au volume de données déplacées.
Déplacer des fichiers ou des répertoires
hadoop fs -mv oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/srcdir \
oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destdir
Cette commande déplace srcdir ainsi que tous ses fichiers et sous-répertoires vers destdir.
La commande -mv peut être lente pour les grands répertoires dans le stockage objet.
Télécharger un fichier
hadoop fs -get oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt /tmp/
Cette commande télécharge exampleobject.txt depuis examplebucket vers /tmp/ sur la machine locale.
Supprimer des fichiers ou des répertoires
hadoop fs -rm oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/destfolder/
Cette commande supprime destfolder/ et tous les fichiers qu'il contient de examplebucket.
Options utiles :
| Option | Description |
|---|---|
-r |
Supprime récursivement un répertoire non vide et son contenu |
-skipTrash |
Supprime définitivement sans déplacer les éléments vers le dossier Corbeille |