Pourquoi l'énumération des objets est-elle si lente ?
Lorsque la mémoire heap du client Jindo DistCp est insuffisante, il ne peut pas mettre en tampon les résultats d'énumération efficacement, ce qui ralentit considérablement le processus. Dans des conditions normales, OSS énumère 1 000 objets par seconde. Si vous observez une ligne de journal similaire à celle ci-dessous, où l'énumération de 315 objets a pris environ 100 secondes, cela indique que le client manque de mémoire heap :
Successfully list objects with prefix xxx/yyy/ in bucket xxx recursive 0 result 315 dur 100036.615031MS
Augmentez la taille de la mémoire heap JVM avant d'exécuter la tâche :
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx4096m"
Pourquoi l'erreur « Failed to get checksum store » s'affiche-t-elle ?
OSS-HDFS utilise COMPOSITE_CRC comme algorithme de somme de contrôle par défaut. Si votre cluster HDFS a le paramètre dfs.checksum.combine.mode défini sur MD5MD5CRC, OSS-HDFS ne peut pas résoudre cette incompatibilité et la tâche échoue avec cette erreur.
Définissez le paramètre fs.oss.checksum.combine.mode pour qu'il corresponde à la configuration de votre HDFS :
hadoop jar jindo-distcp-${version}.jar --src /data --dest oss://destBucket/ --hadoopConf fs.oss.checksum.combine.mode=MD5MD5CRC
Pourquoi l'erreur « verify checksum failed » s'affiche-t-elle lors de la copie d'OSS vers OSS-HDFS ?
Jindo DistCp vérifie l'intégrité des données à l'aide des sommes de contrôle écrites lors du transfert initial. Si les objets dans OSS n'ont pas été migrés depuis HDFS vers OSS via Jindo DistCp, aucun enregistrement de somme de contrôle correspondant n'existe, ce qui entraîne l'échec de la vérification.
Ajoutez l'option --disableChecksum pour ignorer la vérification des sommes de contrôle pour ces objets :
hadoop jar jindo-distcp-${version}.jar --src oss://ossBucket/ --dest oss://dlsBucket/ --disableChecksum
Comment vérifier qu'une tâche Jindo DistCp s'est terminée avec succès ?
La réponse dépend de l'utilisation ou non de l'option --ignore.
**Sans l'option --ignore** : Jindo DistCp s'arrête immédiatement en cas d'erreur et interrompt l'opération de copie.
**Avec l'option --ignore** : La tâche s'exécute jusqu'à son terme, indépendamment des erreurs individuelles sur les fichiers. Vérifiez les compteurs de la tâche après l'exécution et confirmez que les valeurs COPY_FAILED et CHECKSUM_DIFF sont toutes deux égales à zéro. Si l'un de ces compteurs est différent de zéro, certains fichiers n'ont pas été transférés correctement. Pour obtenir la liste complète des compteurs et leur signification, consultez la rubrique Compteurs Jindo DistCp dans la section Utilisation de Jindo DistCp.