Por que a listagem de objetos demora tanto?
Quando o cliente Jindo DistCp fica com pouca memória heap, ele não consegue armazenar os resultados da listagem em buffer de forma eficiente, o que desacelera drasticamente a operação. Em condições normais, o OSS lista 1.000 objetos por segundo. Se você encontrar uma linha de log como a abaixo, em que a listagem de 315 objetos levou cerca de 100 segundos, o cliente está sem memória heap:
Successfully list objects with prefix xxx/yyy/ in bucket xxx recursive 0 result 315 dur 100036.615031MS
Aumente o tamanho da heap da JVM antes de executar o job:
export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx4096m"
Por que recebo o erro "Failed to get checksum store"?
O OSS-HDFS usa COMPOSITE_CRC como algoritmo padrão de checksum. Caso seu cluster HDFS tenha o parâmetro dfs.checksum.combine.mode definido como MD5MD5CRC, o OSS-HDFS não consegue conciliar essa diferença e o job falha com esse erro.
Defina fs.oss.checksum.combine.mode para corresponder à configuração do seu HDFS:
hadoop jar jindo-distcp-${version}.jar --src /data --dest oss://destBucket/ --hadoopConf fs.oss.checksum.combine.mode=MD5MD5CRC
Por que recebo "verifique checksum failed" ao copiar do OSS para o OSS-HDFS?
O Jindo DistCp verifica a integridade dos dados usando checksums gravados durante a transferência original. Se os objetos no OSS não foram migrados do HDFS para o OSS pelo Jindo DistCp, não existem registros de checksum correspondentes e a verificação falha.
Adicione --disableChecksum para ignorar a verificação de checksum nesses objetos:
hadoop jar jindo-distcp-${version}.jar --src oss://ossBucket/ --dest oss://dlsBucket/ --disableChecksum
Como verifico se um job do Jindo DistCp foi concluído com sucesso?
A resposta depende do uso da opção --ignore.
**Sem --ignore**: O Jindo DistCp interrompe a execução imediatamente diante de qualquer erro e para a operação de cópia.
**Com --ignore**: O job é executado até o fim, independentemente de erros em arquivos individuais. Verifique os contadores do job após a execução e confirme se tanto COPY_FAILED quanto CHECKSUM_DIFF estão zerados. Se algum desses contadores for diferente de zero, alguns arquivos não foram transferidos corretamente. Para obter a lista completa de contadores e seus significados, consulte Contadores do Jindo DistCp no tópico Uso do Jindo DistCp.