이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 16499|회답: 0

[출처] Hadoop HDFS에서 직접 파일을 다운로드하세요

[링크 복사]
게시됨 2019. 7. 10. 오후 2:20:11 | | |
HDFS에서 큰 파일을 다운로드

HDFS 클라이언트에서 약 2GB의 큰 DataInputStream 파일을 받았고, 호스트에 파일로 저장해야 합니다.

아파치 공통 IOUtil을 사용해서 이런 식으로 해볼까 생각 중입니다......


이보다 더 나은 다른 해결책을 찾고 있었습니다. 주요 우려는 입력과 IOUtils.copy에서 버퍼링 사용입니다.

2GB를 초과하는 파일은 IOUtils.copyLarge() (같은 IOUtils를 기준으로 할 경우 org.apache.commons.io.IOUtils)를 사용하는 것이 권장됩니다.

IOUtils의 레플리본은 기본 버퍼 크기인 4Kb를 사용합니다(다른 버퍼 크기를 매개변수로 지정할 수도 있습니다).

copy()와 copyLarge()의 차이점은 결과를 반환한다는 점입니다.

copy(), 스트림이 2GB를 넘으면 복사본을 성공적으로 사용할 수 있지만, 결과는 -1입니다.

copyLarge()의 경우 결과는 완전히 복사된 바이트 수입니다.

자세한 내용은 여기에서 확인할 수 있습니다:


하이퍼링크 로그인이 보입니다.



Spring Rest API를 통해 파일이 완전히 다운로드되었는지 확인하는 방법

HDFS에서 파일을 제공하는 간단한 REST API를 만들었어요(파일이 크고 로컬에 복사하고 싶지 않아서요).

파일 다운로드가 성공적으로 완료된 정보를 기록하고 싶은데, 전체 스트림을 읽고 싶은데, 어떻게 해야 할지 모르겠어요. 파일 다운로드가 시작된 정보만 기록할 수 있습니다.

도움 주시면 정말 감사하겠습니다.


InputStream에서 래퍼를 만들고 스트림 close(close())에서 플래그를 트리거해 보세요.

예를 들어, ProxyInputStream을 기반으로 사용할 수 있습니다:








이전의:온라인에서 SMS 인증 코드를 받을 수 있는 몇 가지 웹사이트를 공유해 주세요
다음:JS--플러그인: 트리 개발 및 구현 첨부파일이 다운로드 가능합니다!!
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com