9. 하둡 명령어 (2) - HDFS 명령어
페이지 정보
작성자 관리자 댓글 0건 조회 1,631회 작성일 21-03-06 21:41본문
9. 하둡 명령어 (2) - HDFS 명령어
help
지원하는 명령어의 전체 설명을 확인할수 있는 명령어 입니다.
~ hadoop fs -help
ls, lsr
파일 목록을 보는 명령어 입니다.
lsr은 하위 디렉토리의 정보까지 모두 표시 합니다.
~ hadoop fs -ls
~ hadoop fs -ls 특정폴더명
~ hadoop fs -lsr
~ hadoop fs -lst 특정폴더명
du, dus
바이트 단위로 폴더나 파일의 사용량을 나타냅니다.
~ hadoop fs -du
~ hadoop fs -du 특정폴더
dus는 폴더의 전체 합산 용량만을 나타냅니다.
~ hadoop fs -dus
~ hadoop fs -dus 특정폴더
추가적으로 -h 옵션 사용시 Mb 단위로 표시되어 읽기가 수월합니다. (유닉스와 똑같죠~)
cat, text
파일의 내용을 출력합니다.
~ hadoop fs -cat readme.txt
text는 일반 텍스트 파일 뿐만 아니라 zip으로 묶여있는 현태도 화면에 출력이 가능합니다.
~ hadoop fs - text readme.txt
mkdir
디렉토리를 생성합니다. 만약 이미 생성된 디렉토리라면 오류가 발생됩니다.
~ hadoop fs -mkdir 생성할 폴더명
put, copyFromLocal
로컬에서 HDFS로 파일을 전송할때 사용합니다.
1. 기본적인 사용
~ hadoop fs -put [로컬파일경로1] [로컬파일경로2] [...] [목적지 파일 경로]
ex) ~ hadoop fs -put readme.txt testFolder
2. 두개의 파일을 전송
ex) ~ hadoop fs -put conf/hadoop-env.sh conf/core-site.xml tesetFolder
3. 디렉토리째 복사
ex) ~ hadoop fs -put conf confcopy
위 명령어의 경우 confcopy 폴더가 자동 생성된 후에 conf 폴더의 내용이 복사됩니다.
copyFromLocal은 put과 사용법이 동일합니다
get, copyToLocal
HDFS의 파일을 로컬로 복사합니다.
HDFS는 파일의 무결성을 위해 체크썸 파일을 숨김파일로 가지고 있는데, 이를 같이 받기 위해서는 -crc 옵션 추가가 가능하며, 체크썸을 무시하기 위해서는 -ignoreCrc 옵션을 사용할 수 있습니다.
~ hadoop fs -get [소스파일경로1] [소스파일경로2] [...] [목적지디렉토리 또는 파일 경로]
1. hdfs의 파일을 output 이라는 파일 이름으로 받아옵니다.
ex) ~ hadoop fs -get wordcount_output/part-r-00000 output
2. hdfs의 폴더째 받아옵니다. (wordcount_output -> output이라는 폴더로 받아옴)
ex) ~ hadoop fs -get wordcount_output output
getmerge
HDFS의 파일을 merge하여 하나의 파일로 가져 옵니다.
~ hadoop fs -getmerge [소스폴더명] [로컬 파일명]
ex)
1. hdfs 내부에 임시 폴더를 만듭니다.
~ hadoop fs -mkdir testfolder
2. 두개의 파일을 (test1, test2) hdfs의 폴더에(testfolder) 올립니다.
~ hadooop fs -put test1 test2 testfolder
3. 두개의 파일을 합쳐서 하나의 파일로(mergedtest) 내려 받습니다.
~ hadoop fs -getmerge testfolder mergedtest
cp
파일을 복사합니다. 유닉스 명령어와 동일합니다.
다만 hdfs 내에서 복사됩니다. (당연한 얘기지만~)
또한 소스 파일 여러개를 쓰면 한번에 지정된 폴더로 복사할 수 있습니다.
~ hadoop fs -cp [소스 폴더 또는 파일...] [목적지 폴더 또는 파일]
mv
hdfs 내부에서 파일을 이동시킵니다.
~ hadoop fs -mv [소스 폴더 또는 파일...] [목적지 폴더 또는 파일]
여러개의 파일을 한번에 이동시킬 경우 목적지를 반드시 폴더로 지정해야 합니다.
moveFromLocal
copyFromLocal과 동일하나 hdfs내의 파일은 삭제됩니다.,
rm, rmr
파일을 삭제합니다.
rm을 사용할 경우 반드시 폴더가 비어있어야만 삭제가 가능합니다.
따라서 폴더 내부의 모든 내용을 recursive하게 삭제하기 위해서는 rmr을 사용해야 합니다.
~ hadoop fs -rm [디렉토리 또는 파일]
~ hadoop fs -rmr [디렉토리]
2.0 버전 이후부터는 -rmr 대신 -rm -r 을 사용합니다.
~ hadoop fs -rm -r [디렉토리]
count
지정한 폴더의 파일의개수, 내부 폴더의 개수등의 정보를 반환합니다.
hdfs는 폴더에 생성가능한 파일의 개수나 용량을 제한할수 있으므로 -q 옵션을 이용하여 이런 정보들을 조회 할 수도 있습니다.
~ hadoop fs -count <-q> [디렉토리 또는 파일]
출력되는 정보의 순서는 아래와 같습니다.
디렉토리 개수 | 전체 파일개수 | 전체 파일 용량 | 조회한 경로
-q 옵션을 준 경우 출력되는 정보의 순서는 아래와 같습니다.
제한한 파일 개수 | 파일개수 잔여 개수 | 제한한 파일 용량 | 남은 파일 용량 | 전체 디렉토리 개수 | 전체 파일 용량 | 조회한 경로
tail
파일의 마지막 내용을 보여줍니다. (마지막 1kb에 해당하는 부분)
-f 을 줄 경우 해다 파일이 변경되면 화면의 내용도 갱신됩니다.
~ hadoop fs -tail <-f> [파일]
chmod, chown chgrp
권한을 변경하는 기능은 유니그 계열과 동일합니다.
hdfs 내부에서 권한을 변경하는게 얼마나 유의미? 할지는 모르겠지만...
세개의 명령어에서 -R 옵션을 줄 경우 하위 폴더까지 전부 변경 됩니다.
1. chmod: 파일 또는 디렉토리의 권한을(rwx)를 변경
2. chown: 소유자 또는 소유자&그룹을 변경
3. chgrp: 소유 그룹만 변경
~ hadoop fs -chmod <-R> [권한모드..] [디렉토리 또는 파일..]
~ hadoop fs -chown <-R> [변경 사용자명: 변경 그룹명] [디렉토리 또는 파일..]
~ hadoop fs -chgrp <-R> [변경 그룹명] [디렉토리 또는 파일..]
touchz
0 바이트의 파일을 생성합니다.
~ hadoop fs -touchz [파일1] [파일2] ....
stat
지정된 경로의 정보를 조회합니다. 옵션이 없을경우 최종 변경 시간을 반환하지만, 하기의 옵션을 추가할 경우 다양한 정보를 확인 할 수 있습니다.
- %b 블록단위의 파일크기
- %F 디렉토리 인지, 파일인지
- %n 디렉토리명 또는 파일명
- %o 블록크기
- %r 복제파일 개수
- %y 날짜 표기
- %Y 날짜를 timestamp 형태로 출력
~ hadoop fs -stat <옵션> [디렉토리 또는 파일]
ex)
~ hadoop fs -stat wordcount_output
~ hadoop fs -stat %b-%F-%n-%o-%r-%y-%Y wordcount_output
expunge
HDFS에서는 삭제한 파일을 .Trash/ 라는 폴더에 저장했다가 일정 시간이 지나면 삭제합니다. (휴지통 개념)
휴지통을 강제로 비울때 사용합니다.
~ hadoop fs -expunge
댓글목록
등록된 댓글이 없습니다.