2016-06-24 4 views
2

HDFS 블록 크기가 64MB라는 것을 알고 있습니다. 그러나 새로운 HDFS 파일을 만들고 계속해서 데이터를 쓰지 만 한 번에 단지 4KB 정도만 데이터를 쓰도록하겠습니다. 그것은 매우 비효율적일까요? 결국 내 파일 크기는 1GB가 될 수 있지만 데이터를 조금씩 쓰기 만하면 이러한 파일을 비효율적으로 작성하게됩니까? 파일에 쓰기 전에 데이터를 버퍼링하는 것이 중요합니다. 이 경우, 예를 들어 64MB의 크기에 도달 할 때까지 버퍼에 데이터를 축적 한 다음 HDFS 파일에 기록하고 해당 버퍼를 지운 후에 해당 절차를 반복 할 수 있습니다.몇 단계로 HDFS 파일에 쓰기가 얼마나 효율적입니까?

+0

파일을 쓰는 데 사용하는 방법은 무엇입니까? –

+1

예, 버퍼 (또는 기타)를 사용하여 "청크"로 작성합니다. –

+0

나는 아파치의 라이브러리를 사용하여 HDFS에 쓰기를하고있다. – pythonic

답변

0

우선 HDFS 블록 크기는 사용자가 결정하며 기본값은 구성 가능하며 HDFS에 넣을 때 주어진 파일에 대해 다른 블록 크기를 설정할 수 있습니다.

데이터를 HDFS에 저장하고 싶을 때 Flume을 사용하고 데이터 생성기에 소스를 설정하고 싱크대를 HDFS에있는 파일로 설정 한 다음 도구없이 작업을 수행하십시오. 세부 사항으로 고투. 데이터가 데이터베이스에 있다면 Sqoop도 사용할 수 있습니다.

그렇지 않은 경우 성능 테스트를 수행하고 어떤 방법이 더 좋은지 확인하십시오. 데이터 생성 방법과 라이브러리 사용 방법에 크게 의존합니다.

+0

@pitfa : 나는 그가 데이터 섭취에 대해 질문하지 않는다고 생각합니다. 제안 된 flume 또는 sqoop 접근법이 정확할 수 있습니다. –

관련 문제