Eu preciso processar alguns arquivos em um bucket do S3 usando o hive. O problema é que o hive aparentemente não gosta de usar os buckets como pastas, então eu decidi criar uma pasta em outro bucket e copiar os arquivos lá via s3cmd.
Este é o meu comando:
s3cmd -v cp s3://main.bucket/\* s3://temp.bucket/input/
s3cmd então declara prontamente que eu tenho arquivos X para transferir (geralmente na ordem de 5k ++) e depois de copiar um arquivo, sai em cima de mim com o seguinte erro:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
An unexpected error has occurred.
Please report the following lines to:
[email protected]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Problem: KeyError: 'dest_name'
S3cmd: 1.0.1
Traceback (most recent call last):
File "/usr/local/bin/s3cmd", line 2006, in <module>
main()
File "/usr/local/bin/s3cmd", line 1950, in main
cmd_func(args)
File "/usr/local/bin/s3cmd", line 614, in cmd_cp
subcmd_cp_mv(args, s3.object_copy, "copy", "File %(src)s copied to %(dst)s")
File "/usr/local/bin/s3cmd", line 604, in subcmd_cp_mv
dst_uri = S3Uri(item['dest_name'])
KeyError: 'dest_name'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
An unexpected error has occurred.
Please report the above lines to:
[email protected]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Agora, isso é uma merda.
Pensando que o problema está na transferência de bucket-bucket, decidi criar uma pasta dentro do main.bucket, e simplesmente copiei tudo lá, despreocupado se a pasta em que tudo deve ser copiado também é copiada, causando assim uma loop ou outros enfeites, porque naquele momento eu estava no fim da minha sagacidade.
O novo comando é o seguinte:
s3cmd -v cp s3://main.bucket/\* s3://main.bucket/111a/
Novamente, ele copiou apenas um arquivo e me deu o mesmo erro.
O que isso poderia significar? Como faço para corrigir isso?
Obrigado.
P.S. Se tudo mais falhar, suponho que eu poderia fazê-lo através da GUI da AWS, mas verificar manualmente cada caixa de seleção é uma dor. Pelo que sei, se você rolar para baixo o tempo suficiente, ele vai esquecer os arquivos que você verificou acima, forçando você a fazê-lo no ritmo de um caracol.
Se houver um método para selecioná-los todos de uma vez e copiá-los para um novo diretório, isso seria ótimo.