¿Por qué tarda tanto el listado de objetos?
Cuando el cliente de Jindo DistCp tiene poca memoria heap, no almacena en búfer los resultados del listado de forma eficiente y el proceso se vuelve muy lento. En condiciones normales, OSS lista 1,000 objetos por segundo. Si observa una línea de registro como a continuación, where listar 315 objetos tomó aproximadamente 100 segundos, significa que el cliente agotó la memoria heap:
Successfully list objects with prefix xxx/yyy/ in bucket xxx recursive 0 result 315 dur 100036.615031MS
Aumente el tamaño de la memoria heap de la JVM antes de ejecutar el trabajo:
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx4096m"
¿Por qué aparece el error "Failed to get checksum store"?
OSS-HDFS utiliza COMPOSITE_CRC como algoritmo de suma de comprobación predeterminado. Si su clúster HDFS tiene dfs.checksum.combine.mode configurado como MD5MD5CRC, OSS-HDFS no puede conciliar la diferencia y el trabajo falla con este error.
Configure fs.oss.checksum.combine.mode para que coincida con su configuración de HDFS:
hadoop jar jindo-distcp-${version}.jar --src /data --dest oss://destBucket/ --hadoopConf fs.oss.checksum.combine.mode=MD5MD5CRC
¿Por qué aparece "verify checksum failed" al copiar de OSS a OSS-HDFS?
Jindo DistCp verifica la integridad de los datos mediante las sumas de comprobación escritas durante la transferencia original. Si los objetos en OSS no se migraron de HDFS a OSS mediante Jindo DistCp, no existen registros de suma de comprobación coincidentes y la verificación falla.
Agregue --disableChecksum para omitir la verificación de suma de comprobación en estos objetos:
hadoop jar jindo-distcp-${version}.jar --src oss://ossBucket/ --dest oss://dlsBucket/ --disableChecksum
¿Cómo compruebo que un trabajo de Jindo DistCp finalizó correctamente?
La respuesta depende de si utilizó --ignore.
**Sin --ignore**: Jindo DistCp se detiene inmediatamente ante cualquier error e interrumpe la operación de copia.
**Con --ignore**: El trabajo se ejecuta hasta completarse sin importar los errores individuales de archivos. Revise los contadores del trabajo después de la ejecución y confirme que tanto COPY_FAILED como CHECKSUM_DIFF sean cero. Si alguno de los contadores es distinto de cero, algunos archivos no se transfirieron correctamente. Para obtener la lista completa de contadores y sus significados, consulte Jindo DistCp counters en el tema Uso de Jindo DistCp.