Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 16499|Resposta: 0

[Fonte] Baixe arquivos diretamente do Hadoop HDFS

[Copiar link]
Publicado em 10/07/2019 14:20:11 | | |
Baixe arquivos grandes do HDFS

Peguei um arquivo grande (cerca de 2GB) de DataInputStream do cliente HDFS e preciso armazená-lo como arquivo no meu host.

Estou pensando em usar os IOUtils comuns do Apache e fazer algo assim......


Tenho procurado outras soluções melhores do que esta. A principal preocupação é o uso de buffering na entrada e no IOUtils.copy.

Para arquivos maiores que 2GB, recomenda-se usar IOUtils.copyLarge() (se falarmos dos mesmos IOUtils: org.apache.commons.io.IOUtils)

A réplica no IOUtils usa o tamanho padrão do buffer de 4Kb (embora você possa especificar outro tamanho de buffer como parâmetro).

A diferença entre copy() e copyLarge() é que ela retorna o resultado.

Porque copy(), se o fluxo for maior que 2GB, você usará a cópia com sucesso, mas o resultado é -1.

Para copyLarge(), o resultado é o número de bytes que são totalmente copiados.

Veja mais na documentação aqui:


O login do hiperlink está visível.



Como verificar se um arquivo está totalmente baixado via API Spring Rest

Criei uma API REST simples para servir arquivos a partir de HDFS (os arquivos são grandes e não quero copiá-los localmente).

Quero registrar as informações de que o download do arquivo foi concluído com sucesso, ou seja, ler toda a transmissão, mas não sei como. Só posso registrar as informações que o download do arquivo começou.

Qualquer ajuda será muito bem-vinda.


Você pode tentar criar um wrapper no InputStream e acionar algumas flags no close(close()).

Por exemplo, você pode usar o ProxyInputStream como base:








Anterior:Compartilhe alguns sites de medidas para receber códigos de verificação por SMS online
Próximo:JS--Plugin: Anexo de Desenvolvimento e Implementação de Árvores está disponível para download!!
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com