No Hadoop, como mostrar o processo atual de -copyFromLocal

10

Ainda sou um novato no Hadoop e, desta vez, estava tentando processar um arquivo de 106 GB. Eu costumava -copyFromLocalcopiar esse arquivo grande para o meu Hadoop DFS, mas como o arquivo é grande, tenho que esperar um longo tempo sem ter idéia do status atual da cópia.

Existe alguma maneira de mostrar o status atual de cópia de arquivo com este comando?

Agradecemos antecipadamente a sua ajuda!

Bang Dao
fonte

Respostas:

14

CopyFromLocalnão tem a capacidade de exibir o progresso da cópia do arquivo. Como alternativa, você pode abrir outro shell e executar o $ watch hadoop fs -ls <filenameyouarecopying>. Isso exibirá o arquivo e seu tamanho uma vez a cada 2,0 segundos.

datarockz2
fonte
1
Se não estiver documentado, não existe. :-)
SunnyShah 4/15
1

Não parece haver uma opção detalhada para nenhum dos comandos de cópia (copyFromLocal, copyToLocal, get, put). Sua melhor aposta é provavelmente examinar o tamanho do arquivo no destino no HDFS para avaliar seu progresso.

Travis Campbell
fonte
1

Você pode usar "nohup &" para executar a cópia como um processo em segundo plano. nohup fará com que o processo seja executado mesmo após o logout do servidor. Sempre que precisar, você pode verificar o processo usando "hadoop fs -ls.

Anan
fonte
1

Também é possível acompanhar o progresso da leitura do arquivo local usando o pvcomando e canalizar o conteúdo do arquivo para hdfs dfsstdin:

pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt

Alexander Rodin
fonte
pvé uma ferramenta tão desvalorizada IMO. Faz o trabalho aqui perfeitamente.
Michael Mior 22/03