IT기술/BigData

03 하둡 분산 파일 시스템

dobbby 2014. 2. 12. 17:25
반응형

3.1 HDFS 기초

DAS (Direct-attached storage): 서버에 직접 연결된 스토리지이며, 외장형 하드디스크로 이해하며 됩니다.

  여러 개의 하드디스크를 장착할 수 있는 있는 외장 케이스를 이용하는 방식

NAS (Network-attached storage): 일종의 파일서버입니다. 별도의 운영체제를 사용하며, 파일시스템을 안정적으로 공유할 수 있습니다.

주로 첨부파일이나 이미지 같은 데이터를 저장하는데 많이 사용합니다.

SAN (storage area network): 수십에서 수백대의 SAN 스토리지를 데이터 서버에 연결해 총괄적으로 관리해주는 네트워크를 의미합니다.

DAS 의 단점을 극복하기 위해 개발됐으며, 현재 SAN 기법이 시장의 절반 이상을 차지합니다.

DBMS 와 같이 안정적이고 빠른 접근이 필요한 데이터를 저장하는데 사용합니다.


HDFS 과 기존 대용량 파일시스템의 가장 큰 차이점은 저사양 서버를 이용해 스토리지를 구성할 수 있다는 점입니다.

HDFS 는 다음과 같이 네가지 목표를 가지고 설계됐습니다.

1) 장애복구

2) 스트리밍 방식의 데이터 접근

3) 대용량 데이터 저장

4) 데이터 무결성



3.2 HDFS 아키텍처

3.2.1 블록 구조 파일 시스템

HDFS 는 블록 구조의 파일 시스템입니다. HDFS 에 저장하는 파일은 특정 사이즈의 블록으로 나눠져서 분산된 서버에 저장됩니다.


3.2.2 네임노드와 데이터노드

HDFS 는 마스터 (Master)- 슬레이브 (Slave) 아키텍처로 구성됩니다.

마스터 역할을 하는 네임노드 (NameNode) 한 대, 슬레이브 역할을 하는 데이터노드 (DataNode) 여러대로 구성됩니다.


3.2.3 파일 저장


3.2.4 파일 읽기


3.2.5 보조 네임노드

보조 네임노드는 주기적으로 네임노드의 파일 시스템 이미지 파일을 갱신하는 역할을 하며, 이러한 작업을 체크포인트 (checkpoint) 라고 합니다.



3.3  HDFS 명령어 사용

3.3.1 파일 목록 보기 - ls, lsr

$ ./bin/hadoop fs -ls

$ ./bin/hadoop fs -lsr wordcount_output


3.3.2 파일 용량 확인 - du, dus

$ ./bin/hadoop fs -du

$ ./bin/hadoop fs -dus


3.3.3 파일 내용 보기 - cat, text

$ ./bin/hadoop fs -cat conf/hadoop-env.sh


3.3.4 디렉터리 생성 - mkdir

$ ./bin/hadoop fs -mkdir testDir


3.3.5 파일 복사 - put, get, getmerge, cp, copyFromLocal, copyToLocal

$ ./bin/hadoop fs -put conf testDir


3.3.6 파일 이동 - mv, moveFromLocal

$ ./bin/hadoop fs -mv conf conf2


3.3.7 파일 삭제하기 - rm

$ ./bin/hadoop fs -rm conf2


3.3.8 디렉터리 삭제 - rmr

$ ./bin/hadoop fs -rmr test*


3.3.9 카운트값 조회 - count

$ ./bin/hadoop fs -count wordcount_output


3.3.10 파일의 마지막 내용 확인 - tail

$ ./bin/hadoop fs -tail wordcount_output/part-r-00000


3.3.11 권한 변경 - chmod, chown, chgrp

$ ./bin/hadoop fs -chmod 777 sample.csv

$ ./bin/hadoop fs -ls sample.csv

$ ./bin/hadoop fs -chmod a-rwx sample.csv

$ ./bin/hadoop fs -ls sample.csv


$ ./bin/hadoop fs -chown tester:testerGroup sample.csv

$ ./bin/hadoop fs -ls sample.csv


$ ./bin/hadoop fs -chgrp testerGroup2 sample.csv

$ ./bin/hadoop fs -ls sample.csv


3.3.12 0바이트 파일 생성 - touchz

$ ./bin/hadoop fs -touchz touchzExample

$ ./bin/hadoop fs -ls touchzExample


3.3.13 통계 정보 조회 - stat

$ ./bin/hadoop fs -stat wordcount_output


3.3.14 복제 데이터 개수 변경 - setrep

$ ./bin/hadoop fs -setrep -w 1 sample.csv


3.3.15 휴지통 비우기 - expunge

$ ./bin/hadoop fs -expunge


3.3.16 파일 형식 확인 - test

$ ./bin/hadoop fs -test -ezd



3.4 클러스터 웹 인터페이스

하둡은 자체적인 웹 서버를 구동하고 있습니다.

웹사이트는 브라우저에서 http://네임노드의 IP 혹은 호스트명:50070 이라고 입력하면 접근할 수 있으며,

이 주소는 hadoop-site.xml 의 dfs.http.address 속성을 수정해서 변경할 수 있습니다.



3.5 HDFS 입출력 예제












반응형