Apache Hadoop — HDFS 와 YARN 을 한 파드에 세우고 운영한다 · 쿼터 · 测验
퀴즈: 이름 쿼터와 공간 쿼터
6道题. 完成作答后会显示正确答案和解析。
빈 디렉터리에 이름 쿼터 10 을 걸었다. 그 안에 만들 수 있는 파일은 최대 몇 개인가?
- 9개 — 디렉터리 자신도 이름 하나로 센다
- 10개 — 쿼터는 자식 이름만 센다
- 11개 — 쿼터를 한 번은 넘을 수 있다
- 제한 없음 — 이름 쿼터는 디렉터리만 센다
공간 쿼터 30MB 인 디렉터리에 1바이트 파일을 기본 블록 크기(128MB), 복제 계수 1 로 put 했다. 결과는?
- 1바이트만 쓰므로 쿼터 안이라 성공한다
- 블록 128MB 를 담을 여유가 없어 DSQuotaExceededException
- 쿼터를 넘은 만큼만 잘려 30MB 까지 저장된다
- NameNode 가 블록 크기를 30MB 로 줄여 저장한다
복제 계수 3 으로 1GB 파일을 저장했다. 공간 쿼터에서 차감되는 양은?
- 1GB — 쿼터는 원본 크기만 센다
- 1GB 와 메타데이터 크기를 더한 값
- 3GB — 복제본 하나하나가 쿼터에 들어간다
- 384MB — 블록 하나의 복제본만 센다
hadoop fs -count -q 출력에서 CONTENT_SIZE 와 REMAINING_SPACE_QUOTA 를 비교할 때 주의할 점은?
- 두 값 모두 복제본까지 센 값이라 바로 더하면 된다
- 두 값 모두 블록 수 단위라 블록 크기를 곱해야 한다
- CONTENT_SIZE 에는 휴지통 크기가 빠져 있어 늘 더 작다
- CONTENT_SIZE 는 복제 전, 남은 공간 쿼터는 복제 후 기준이다
홈 디렉터리에 공간 쿼터가 걸린 사용자가 파일을 rm 으로 지웠는데 쿼터 사용량이 줄지 않았다. 휴지통이 켜져 있다면 이유는?
- 지운 파일이 홈 아래 .Trash 로 옮겨져 계속 쿼터를 쓴다
- 쿼터 사용량은 NameNode 재시작 때만 다시 계산된다
- rm 은 블록을 지우지 않고 복제 계수만 0 으로 바꾼다
- 쿼터는 한 번 차감되면 관리자가 해제하기 전까지 유지된다
작은 로그 파일을 수백만 개 쏟아 내는 팀이 있다. NameNode 를 지키려면 어떤 쿼터가 가장 직접적인가?
- 공간 쿼터 — 바이트를 막으면 파일 수도 함께 줄어든다
- 이름 쿼터 — 파일과 디렉터리의 개수를 직접 막는다
- 저장 매체 쿼터 — SSD 사용량을 막아 속도를 늦춘다
- 복제 계수를 1 로 낮추면 쿼터 없이도 해결된다