HDFS - [운영] 어드민 명령(dfsadmin)

Posted 05 12, 2013 13:32, Filed under: BigData/Hadoop


# HDFS dfsadmin 명령


어드민 명령에서 제공하는 기능및 사용법 조회

[hadoop@master bin]$ ./hadoop dfsadmin -help
hadoop dfsadmin is the command to execute DFS administrative commands.
The full syntax is:

hadoop dfsadmin [-report] [-safemode <enter | leave | get | wait>]
        [-saveNamespace]
        [-refreshNodes]
        [-setQuota <quota> <dirname>...<dirname>]
        [-clrQuota <dirname>...<dirname>]
        [-setSpaceQuota <quota> <dirname>...<dirname>]
        [-clrSpaceQuota <dirname>...<dirname>]
        [-refreshServiceAcl]
        [-refreshUserToGroupsMappings]
        [refreshSuperUserGroupsConfiguration]
        [-setBalancerBandwidth <bandwidth>]
        [-help [cmd]]

# dfsadmin -report
HDFS의 기본적인 정보와 상태를 출력

[hadoop@master bin]$ ./hadoop dfsadmin -report
Configured Capacity: 117397389312 (109.33 GB)
Present Capacity: 82190573568 (76.55 GB)
DFS Remaining: 68000481280 (63.33 GB)
DFS Used: 14190092288 (13.22 GB)
DFS Used%: 17.26%
Under replicated blocks: 155
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead)  // 사용가능 데이터노드(총 데이터노드, 다운된 데이터노드)

Name: 192.168.1.45:50010
Decommission Status : Normal
Configured Capacity: 11708014592 (10.9 GB)  // 해당 데이터노드의 총 구성 용량
DFS Used: 2056048640 (1.91 GB)                  // 분산파일시스템 사용 용량
Non DFS Used: 9525932032 (8.87 GB)
DFS Remaining: 126033920(120.2 MB)
DFS Used%: 17.56%
DFS Remaining%: 1.08%
Last contact: Sun May 12 13:11:57 KST 2013


Name: 192.168.1.19:50010
Decommission Status : Normal
Configured Capacity: 105689374720 (98.43 GB)
DFS Used: 12134043648 (11.3 GB)
Non DFS Used: 25680883712 (23.92 GB)
DFS Remaining: 67874447360(63.21 GB)
DFS Used%: 11.48%
DFS Remaining%: 64.22%
Last contact: Sun May 12 13:12:00 KST 2013

# dfsadmin -safemode
하둡을 재구동하면 로컬에 저장된 파일 시스템 이미지와 에디트 로그를 조회한 후 메모리에 있는 파일 시스템 이미지를 갱신합니다.
이때 데이터노드는 저장하고 있는 블록의 위치 정보를 네임노드에 전송하고, 네임노드는 메모리에 올라와 있는 파일 시스템 이미지와 데이터노드가 전송한 블록의 정보를 비교하는 작업을 수행합니다.
이러한 비교 작업을 블록 리포팅이라고 하며, 블록 리포팅이 완료되기 전까지의 상태를 안전모드(safemode)라고 합니다.

만약 블록 리포팅을 할 때 사용자가 파일을 저장한다면 블록 리포팅 결과에 오류가 생길 것입니다.
이처럼 왜곡이 생기는 것을 막기 위해 안전 모드 상태에서는 파일을 쓰거나 변경하는 작업이 금지됩니다.
대신 기존에 저장된 파일을 읽는 것은 허용됩니다.

하둡은 운영자가 직접 안전 모드를 제어할 수 있게 safemode 명령어를 제공합니다.
안전 모드를 시작할 경우에는 다음과 같이 enter 파라미터를 입력해서 명령어를 실행합니다.

[hadoop@master bin]$ ./hadoop dfsadmin -safemode enter
Safe mode is ON
[hadoop@master bin]$ ./hadoop dfsadmin -safemode leave
Safe mode is OFF
[hadoop@master bin]$


# dfsadmin -saveNamespace
하둡은 로컬 파일 시스템에 저장되어 있는 파일 시스템 이미지 파일과 에디트 로그를 현재 버전으로 갱신할 수 있는 saveNamespace 명령어를 제공합니다.
saveNamespace 명령어는 하둡을 구동할 수 있는 권한을 가진 사용자만 실행할 수가 있습니다.
saveNamespace 명령어를 실행하려면 반드시 네임노드를 안전 모드 상태로 만들어야 합니다.

saveNamespace 명령어는 네임스페이스만 새롭게 저장해줄 뿐 안전 모드를 해제하지는 않습니다.
saveNamespace 정상 종료후에는 HDFS에 파일 쓰기가 허용되도록 네임노드의 안전모드를 해제합니다.

[hadoop@master bin]$ ./hadoop dfsadmin -saveNamespace
// 안전모드를 먼저 실행하라는 메시지
saveNamespace: java.io.IOException: Safe mode should be turned ON in order to create namespace image.

// 안전모드 실행
[hadoop@master bin]$ ./hadoop dfsadmin -safemode enter
Safe mode is ON

// saveNamespace 실행
[hadoop@master bin]$ ./hadoop dfsadmin -saveNamespace

// 안전모드 해제
[hadoop@master bin]$ ./hadoop dfsadmin -safemode leave
Safe mode is OFF

# dfsadmin -setQuota
하둡은 HDFS의 디렉토리에 파일이 과도하게 생성되는 것을 제한할 수 있는 쿼터 설정 명령어를 제공합니다.
setQuota 명령어를 사용하면 디렉토리에 생성되는 파일과 하위 디렉토리 개수를 설정할 수 있습니다.

주의)
파라미터로 사용하는 쿼터수가 지정된 디렉토리까지 포함한 숫자
만약 쿼터수를 1로 설정한다면 해당 디렉토리에 어떤 파일도 새로 저장할 수가 없음

예) hadoop -setQuota 쿼터수 디렉토리명

// quota_test 디렉토리 생성
[hadoop@master bin]$ ./hadoop fs -mkdir quota_test

// 쿼터수 설정
[hadoop@master bin]$ ./hadoop dfsadmin -setQuota 2 quota_test
[hadoop@master bin]$

// quota_test 디렉토리에 파일 저장
[hadoop@master bin]$ ./hadoop fs -put /home/hadoop/Supplemental_data/1988.csv quota_test/1988.csv
[hadoop@master bin]$ ./hadoop fs -put /home/hadoop/Supplemental_data/1989.csv quota_test/1989.csv

// 쿼터수를 초과했다는 오류 메시지
put: org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /user/hadoop/quota_test is exceeded: quota=2 file count=3
[hadoop@master bin]$

// 쿼터수를 3개로 설정(디렉토리 포함 3개 파일 허용)
[hadoop@master bin]$ hadoop dfsadmin -setQuota 3 quota_test

// 정상 업로드
[hadoop@master bin]$ ./hadoop fs -put /home/hadoop/Supplemental_data/1989.csv quota_test/1989.csv

// quota_test 디렉토리 조회
[hadoop@master bin]$ ./hadoop fs -ls quota_test
Found 2 items
-rw-r--r--   2 hadoop supergroup  501039472 2013-05-12 13:53 /user/hadoop/quota_test/1988.csv
-rw-r--r--   2 hadoop supergroup  486518821 2013-05-12 13:56 /user/hadoop/quota_test/1989.csv

// 파일 수 제한 쿼터 해제
[hadoop@master bin]$ hadoop dfsadmin -clrQuota quota_test

# dfsadmin -setSpaceQuota
하둡은 특정 디렉토리가 지나치게 많은 용량을 차지하지 않도록 디렉토리에 저장할 파일 크기까지 설정할 수 있습니다.

예) hadoop -setSpaceQuota 용량 디렉토리명
용량은 단위를 붙이지 않을경우 바이트로 인식, 숫자 뒤에 m을 붙이면 MB, g를 붙이면 GB, t를 붙이면 TB

// quota_test 디렉토리에 파일 저장 용량 제한 설정
[hadoop@master bin]$ ./hadoop dfsadmin -setSpaceQuota 1500m quota_test

// 파일 저장 시도
[hadoop@master bin]$ ./hadoop fs -put /home/hadoop/Supplemental_data/1990.csv quota_test/1990.csv

// 1.5GB 로 용량 제한, 1.8GB 의 용량이 소비된다는 오류 메시지
put: org.apache.hadoop.hdfs.protocol.DSQuotaExceededException: The DiskSpace quota of /user/hadoop/quota_test is exceeded: quota=1572864000 diskspace consumed=1.8g

// 용량 쿼터 해제
[hadoop@master bin]$ ./hadoop dfsadmin -clrSpaceQuota quota_test

[hadoop@master bin]$ ./hadoop fs -put /home/hadoop/Supplemental_data/1990.csv quota_test/1990.csv
[hadoop@master bin]$ ./hadoop fs -ls quota_test
Found 3 items
-rw-r--r--   2 hadoop supergroup  501039472 2013-05-12 13:53 /user/hadoop/quota_test/1988.csv
-rw-r--r--   2 hadoop supergroup  486518821 2013-05-12 13:56 /user/hadoop/quota_test/1989.csv
-rw-r--r--   2 hadoop supergroup  509194687 2013-05-12 14:14 /user/hadoop/quota_test/1990.csv



참고 : 시작하세요! 하둡 프로그래밍


※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
05 12, 2013 13:32 05 12, 2013 13:32


Trackback URL : http://develop.sunshiny.co.kr/trackback/891

Leave a comment
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

« Previous : 1 : ... 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : ... 648 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. clock synchronization software clock synchronization software 2 06
  2. print and mailing services print and mailing services 2 06
  3. print and mail service print and mail service 1 06
  4. clocks large facilities clocks large facilities 1 06
  5. print and mail service print and mail service 31 05

Calendar

«   06 2020   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2968381 HIT
TODAY 86 HIT
YESTERDAY 1325 HIT