[HADOOP] 하나의 블록에 여러 개의 파일이 저장되어 있습니까?
HADOOP하나의 블록에 여러 개의 파일이 저장되어 있습니까?
많은 작은 파일을 HDFS에 저장하면 단일 블록에 저장됩니까?
내 의견으로는,이 작은 파일은이 토론에 따라 하나의 블록에 저장되어야합니다. HDFS 블록 크기 대 실제 파일 크기
해결법
-
==============================
1.Hadoop에서 인용하기 - The Definitive Guide :
Hadoop에서 인용하기 - The Definitive Guide :
결론 : 각 파일은 별도의 블록에 저장됩니다.
-
==============================
2.아래는 Hadoop Definitive Guide에 명시된 내용입니다.
아래는 Hadoop Definitive Guide에 명시된 내용입니다.
예를 들어, 30MB 파일이 있고 블록 크기가 64MB 인 경우이 파일은 논리적으로 한 블록에 저장되지만 실제 파일 시스템에서는 HDFS가 파일을 저장하는 데 30MB 만 사용합니다. 나머지 30MB는 자유롭게 사용할 수 있습니다.
-
==============================
3.각 블록은 하나의 파일에만 속합니다. 다음과 같이하십시오. 1. 파일의 블록 정보를 얻기 위해 fsck 명령 사용 :
각 블록은 하나의 파일에만 속합니다. 다음과 같이하십시오. 1. 파일의 블록 정보를 얻기 위해 fsck 명령 사용 :
hadoop fsck /gavial/data/OB/AIR/PM25/201709/01/15_00.json -files -blocks
이런 식으로 넣어 :
/gavial/data/OB/AIR/PM25/201709/01/15_00.json 521340 bytes, 1 block(s): OK 0. BP-1004679263-192.168.130.151-1485326068364:blk_1074920015_1179253 len=521340 repl=3 Status: HEALTHY Total size: 521340 B Total dirs: 0 Total files: 1 Total symlinks: 0 Total blocks (validated): 1 (avg. block size 521340 B) Minimally replicated blocks: 1 (100.0 %) Over-replicated blocks: 0 (0.0 %)
블록 ID :
blk_1074920015
2. 사용 fsck 명령은 블록 상태를 보여 주며, 이와 같이 넣어 둡니다.
hdfs fsck -blockId blk_1074920015
Block Id: blk_1074920015 Block belongs to: /gavial/data/OB/AIR/PM25/201709/01/15_00.json No. of Expected Replica: 3 No. of live Replica: 3 No. of excess Replica: 0 No. of stale Replica: 0 No. of decommission Replica: 0 No. of corrupted Replica: 0 Block replica on datanode/rack: datanode-5/default-rack is HEALTHY Block replica on datanode/rack: datanode-1/default-rack is HEALTHY
분명히 블록은 하나의 파일에만 속합니다.
-
==============================
4.예. 많은 수의 작은 파일을 저장하면 블록에 동일한 공간이있을 때까지 단일 블록에 저장됩니다. 하지만 이러한 작은 파일 각각에 대해 각 작은 파일의 namenode에 인덱싱 항목 (파일 이름, 블록, 오프셋)이 만들어지기 때문에 비효율적입니다. 이것은 매우 큰 파일 수가 적지 않고 많은 작은 파일을 가지고 있다면 namenode에서 메타 데이터 용으로 예약 된 메모리를 낭비합니다.
예. 많은 수의 작은 파일을 저장하면 블록에 동일한 공간이있을 때까지 단일 블록에 저장됩니다. 하지만 이러한 작은 파일 각각에 대해 각 작은 파일의 namenode에 인덱싱 항목 (파일 이름, 블록, 오프셋)이 만들어지기 때문에 비효율적입니다. 이것은 매우 큰 파일 수가 적지 않고 많은 작은 파일을 가지고 있다면 namenode에서 메타 데이터 용으로 예약 된 메모리를 낭비합니다.
from https://stackoverflow.com/questions/21274334/are-multiple-files-stored-in-a-single-block by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] LeaseExpiredException : HDFS에 임대 오류가 없습니다. (0) | 2019.06.14 |
---|---|
[HADOOP] HBase REST 필터 (SingleColumnValueFilter) (0) | 2019.06.14 |
[HADOOP] Hive HDFS의 각 삽입에 대한 다중 작은 파일 만들기 (0) | 2019.06.14 |
[HADOOP] HDFS에서 로컬 머신으로 파일 복사하기 (0) | 2019.06.14 |
[HADOOP] hadoop의 시퀀스 파일은 무엇입니까? (0) | 2019.06.14 |