40
Cloud Computing – 5 장 . 장장 장장장장 장장장 2012.5.5 09:00 www.greatlecture.co.k r KINTEX Study 4 장 장장 : 장장장 장장 : 장장장 , 장장장

클라우드컴퓨팅구현기술 5장

Embed Size (px)

Citation preview

Page 1: 클라우드컴퓨팅구현기술 5장

Cloud Computing – 5 장 . 하둡 분산파일 시스템

2012.5.5 09:00

www.greatlecture.co.kr

KINTEX Study 4 회준비 : 함건주참석 : 김선만 , 최윤종

Page 2: 클라우드컴퓨팅구현기술 5장

0 파일 저장소 & 파일 시스템

contents

1 구글 파일 시스템

2 하둡 파일 시스템 구성

3 하둡 파일 시스템 운영

4 하둡 파일 시스템 API 활용

Page 3: 클라우드컴퓨팅구현기술 5장

Chapter 5

파일 저장소의 종류1. DAS (Direct Attached Storage)

서버와 전용 케이블로 연결한 외장형 저장장치물리적이며 쉽게 저장공간을 확보할 수 있다 .데이터 증가에 따른 외부 저장장치의 확장은 서버의 효율성 저하 !!중앙 집중식 시스템과 같은 취약점 !

2. SAS (Serial Attached SCSI)

직렬접근방식 인터페이스SCSI( 병렬방식 ) 와 SATA( 직렬방식 ) 의 장점 -> SAS(직렬방식 ) !고성능 / 고가용을 위해서 만들어짐소규모는 SATA, 그 이상은 SAS!

Page 4: 클라우드컴퓨팅구현기술 5장

Chapter 5

파일 저장소의 종류3. NAS (Network Attached Storage)

- Server 와 Client 가 Network 에 의하여 원활한 접근을 할 수 있게 해 주는 Network 방식- 중간 규모 정도의 데이터 용량에 안정적인 파일 저장이 필요한 경우에 이용- 주로 첨부 파일이나 이미지 같은 데이터를 저장하는데 주로 사용

Page 5: 클라우드컴퓨팅구현기술 5장

Chapter 5

파일 저장소의 종류4. SAN (Storage Area Network) - 광채널로 스토리지만을 위한 별도의 네트워크를 구성 - 고성능 , 고가용성이 필요한 데이터인 경우에 이용

Page 6: 클라우드컴퓨팅구현기술 5장

Chapter 5

그렇다면 왜 분산처리시스템 ?

결국 앞서 말한 최종적인 NAS 와 SAN 시스템의 문제점은가격이 비싸며 탄력적인 확장성을 보장하기 어렵다 .

그렇다고 NAS 와 SAN 을 배제시킨다 ? No !SAN, NAS 와 더불어 분산처리시스템에서 선택할 수 있는대안을 제시하고자 한다 .

즉 , 이러할 경우 분산처리 시스템을 선택하자 .파일저장 , 읽기 같은 단순한 연산만 필요하지만 대규모의 데이터를 저렴한 비용으로 저장하려고 할 경우 !

Page 7: 클라우드컴퓨팅구현기술 5장

Chapter 5

파일 시스템의 분류

구분 특징 종류

단일 파일 시스템저널링 , 보안 등 단일 플랫폼과 운영체제를 위해 특화된 파일 시스템 NTFS, ext2

네트워크 공유 파일 시스템특정한 프로토콜로 네트워크상에서의 데이터 공유를 가능하게 함 NFS, CIFS

클러스터 파일 시스템동일 서버들로 이루어진 클러스터 사이에 고속으로 데이터를 공유함 GFS, Luster

SAN 파일 시스템SAN 환경에서 이기종의 서버들끼리 데이터를 공유함

CSFS,SANergy

그리드 파일 시스템

네트워크 공유 파일 시스템의 확장으로 독립적인 네트워크 파일 시스템이 모여서 계층적인 구조를 형성함

NFSv4

* 클러스터 파일 시스템은 교제 참고 !

Page 8: 클라우드컴퓨팅구현기술 5장

0 파일 저장소 & 파일 시스템

contents

1 구글 파일 시스템

2 하둡 파일 시스템 구성

3 하둡 파일 시스템 운영

4 하둡 파일 시스템 API 활용

Page 9: 클라우드컴퓨팅구현기술 5장

Chapter 5

구글 파일 시스템1. 서버 동작

2. 클라이언트 요청 처리

3. 서버 갱신

4. 클라이언트와 조각서버와의 데이터 교류

Page 10: 클라우드컴퓨팅구현기술 5장

Chapter 5

구글 파일 시스템1. 서버 동작

- 마스터의 메모리에 메타데이터가 저장된다 . 1) 파일과 조각의 네임 스페이스 2) 파일과 조각간의 매핑정보 3) 각 조각의 복제들의 위치정보

1), 2) 는 마스터의 로컬디스크에 log 형태로 영구저장되어원격기기에 복제된다 . (log 형태로써 무결성 보장 )3) 은 영구저장 x. 초기 구동시 각 조각서버에게 위치정보 요청이 후 조각서버가 새로 추가 될 때 다시 요청한다 .

또한 , 조각 서버를 구별하기 위한 handle 은 64bit 이며 변경 불가능 !

Page 11: 클라우드컴퓨팅구현기술 5장

Chapter 5

구글 파일 시스템2. 클라이언트 요청

- 초기에는 클라이언트 - 마스터 간의 연결이 이루어진다 .- 마스터는 클라이언트에게 조각 서버를 알려준다 .- 이 후로 클라이언트의 캐시에 조각 서버의 정보가 저장된다 .- 따라서 마스터를 거치지 않고 클라이언트 - 조각서버 간 연결 !

부가 설명

Page 12: 클라우드컴퓨팅구현기술 5장

Chapter 5

구글 파일 시스템3. 서버 갱신

- 마스터는 heartbeat 메시지를 통해 주기적으로 조각 서버를 체크- 마스터의 역할 1) 조각 임대 관리 (lease) 2) 유보된 조각의 유휴메모리 정리 (garbage collection) 3) 이동과 같은 시스템 수준 동작- 파일들은 조각 (chunk) 으로 나누어져 조각서버에 저장이 되는데 안정성을 위해 복사본을 생성한다 .( 기본 3 개 , 복사레벨 지정 가능 )

Page 13: 클라우드컴퓨팅구현기술 5장

Chapter 5

구글 파일 시스템4. 클라이언트와 조각서버와의 데이터 교류

즉 , 마스터가 프라이머리 서버를 지정하여 데이터 교류

* 주키퍼는 한 번 리더가 결정되면 계속 리더 역할 수행* GFS 는 매번 요청에 대해 리더를 선출하는 개념

Page 14: 클라우드컴퓨팅구현기술 5장

0 파일 저장소 & 파일 시스템

contents

1 구글 파일 시스템

2 하둡 파일 시스템 구성

3 하둡 파일 시스템 운영

4 하둡 파일 시스템 API 활용

Page 15: 클라우드컴퓨팅구현기술 5장

Chapter 5

하둡 파일 시스템 구성 1. 하나의 Name Node, 다수의 Data Node2. Name Node 는 파일 관리자 및 Client 의 파일 접근 요청 처리3. Data Node 는 Client 의 데이터 입출력 요청 처리 (block

단위 )4. Secondary Name Node 의 스냅샷 ( 메모리내용 ,

파일커밋로그 )5. 전체 hdfs 의 용량 = 전체 데이터 노드 용량 / 복제본 수

Page 16: 클라우드컴퓨팅구현기술 5장

Chapter 5

Hfs 의 파일 저장 동작 방식

하둡 클라이언트 네임 노드 파일

네임스페이스

ed-its

fsimage

세컨드리 네임노드

데이터노드 데이터노드 데이터노드

1. 패스 요청2. 생성 및 패스 락

3. DN 목록( 복제본 수 만큼 )

4. 데이터 전송(DN 목록 같이 전송 )

5. 데이터 복제 5. 데이터 복제

6. 추가 블록 요청7. NameSpace 등록

10. Close 전송

11. Fsimage 병합

Page 17: 클라우드컴퓨팅구현기술 5장

Chapter 5

HDFS 의 특징과 장단점

1. 선형적인 확장성 제공

> 기존에는 사용할 용량을 예측했어야 했다 .> 기존도 선형적 확장이 가능은 하지만 관리요소가 많다 .

> HDFS 는 리눅스 장비만 설치 후 하둡의 데이터 노드를 실행 ! 이 후는 HFS 이 자동으로 인식 !!

2. 글로벌 네임스페이스 제공

> 파일 데이터에 대한 중복저장 , 파일 공유 문제 해결> 어떻게 ? 유일한 식별 단위로 !

> 기존에는 파일 명으로 구분을 하였다 .

Page 18: 클라우드컴퓨팅구현기술 5장

Chapter 5

HDFS 의 특징과 장단점

3. 전체 처리 용량 증가

> 기존에는 부하 집중에 최약한 구조> 응용 - 스토리치 계층 사이에서 병목이 발생

> 분산된 서버의 디스크를 이용하므로 네트워크 , 디스크 I/O 등이 각 서버로 분산딘다 . 동일한 용량의 스토리지 구축 -> 전체 처리 용량 증가

4. 데이터 분석 처리에 활용

> 분석용 데이터를 HFS 에 저장> 맵리듀스로 빠르게 분석하는데 활용 ( 분산 / 병렬 처리 Framework)

Page 19: 클라우드컴퓨팅구현기술 5장

Chapter 5

HDFS 의 제약 사항

1. 응용 프로그램 기반의 파일 시스템

> 기존 FS 의 파일 처리 명령을 이용할 수 없다 .> 마운팅 기능을 제공하지 않는다 .> 따라서 FUSE 같은 도구를 이용한다 .

2. 불변 파일만 저장 (Immutable file)

> 스트리밍 방식의 읽기 요청 위주인 응용 , 배치 작업에 적합> 뭐 , 최근에는 데이터추가가 된다고 하니 배제해야 하나 ?

Page 20: 클라우드컴퓨팅구현기술 5장

Chapter 5

HDFS 의 제약 사항

3. 네임스페이스 관리를 네임 노드 메모리에 저장

> 하나의 파일 정보는 수백 바이트이다 .> 파일과 디렉토리의 개수는 ND 메모리 크기에 제한을 받는다 .> 따라서 여러 하둡 클러스터를 구성하는 방식으로 해결

4. 네임 노드 이중화 문제

> 네임 노드가 SPOF 이다 .> 따라서 네임 노드의 이중화를 위해 몇 가지 기법 연구중…

Page 21: 클라우드컴퓨팅구현기술 5장

Chapter 5

NameNode 의 이중화 문제를 더 깊이 .. (1)

2010. 8. 3 - 하둡 아파치 서버에서 Maxim Veksler 이 질문을 했다 . > 왜 하둡에서는 이중화 문제에 대해 더 좋은 방안을 안하냐 ? > 내가 최근에 BFT 알고리즘을 봤는데 이를 적용해 보아라

- Jeff Hammerbacher 는 이렇게 답변했다 . > 현재 다방면으로 해결중이다 . 너 글 괜찮은데 ? ㅋㅋ > 현재 해결책 중에 BFT 를 적용중인 것은 없다 . 고마워 ㅋㅋ > 그리고 몇몇 진행중인 해결책 줄테니 참고해봐 > Check out https://issues.apache.org/jira/browse/HDFS-1064 for the um-brella

JIRA for NN HA. For specific solutions, you may be interested in Facebook'sAvatarNode (https://issues.apache.org/jira/browse/HDFS-976), or ChinaMobile's approach (http://github.com/gnawux/hadoop-cmri).

Page 22: 클라우드컴퓨팅구현기술 5장

Chapter 5

NameNode 의 이중화 문제를 더 깊이 .. (2)

2011. 8. 25 - 조지 Kousiouris 가 글을 올렸다 . 우리가 하둡 관련되서 발표 준비중인데 , NameNode 의 SPOF 를 해결해야한다 . ( 예를 들면 NameNode 를 하나보다 많게 나누는 것처럼 ) 이와 관련되서 뭐 문서 좀 없냐 ???- Nan Zhu http://www.springerlink.com/content/h17r882710314147/ 이거 봐바- Uma 어쩌고저쩌고 .. https://issues.apache.org/jira/browse/HDFS-1623 이거 참고해- 조지 Kousiouris 오 .. 이것도 좋은 듯 ..https://ritdml.rit.edu/bitstream/handle/1850/13321/ATalwalkarThesis1-2011.pdf?sequence=1

Page 23: 클라우드컴퓨팅구현기술 5장

Chapter 5

설치

운영환경 : 리눅스 개발환경 : 리눅스 , 윈도우 자바 1.6 이상 ssh

- HFS 를 설치하려면 ? 하나의 네임노드 서버 + 기본적으로 3 대의 데이터 노드 서버 필요

- SSH 를 이용해 공개키를 생성하여 접속하게 될 데이터 노드 서버에 공개키를 복사한다 . -> 패스워드 입력 없이 명령 수행 가능 .

> 229 페이지 참고

Page 24: 클라우드컴퓨팅구현기술 5장

Chapter 5

다운로드

http://hadoop.apache.org 에서 받으세요 ~

뭐 문제 있었습니까 ?

1.0.2_x86_64.rpm 으로 설치했어요 ~

최신 버전이라서 교제와 많이 다르네요 .. ㅡㅡ

Page 25: 클라우드컴퓨팅구현기술 5장

Chapter 5

환결설정 (1) - 기본

/etc/hadoop 에 있다 . (1.0.2 기준 ; 교제와 다름 )

네임노드에서 설정 후 데이터 노드로 복사하는 방식

데이터 노드마다 환경이 다를 경우 복잡하다 .왜냐하면 데이터 노드에 마추어서 환경 설정을 해야한다 .

Page 26: 클라우드컴퓨팅구현기술 5장

Chapter 5

환결설정 (2) – hadoop-env.sh

> 232 page 참고

Page 27: 클라우드컴퓨팅구현기술 5장

Chapter 5

환결설정 (3) – core-site.xml

로그 파일 , 네트워크 튜닝 , I/O 튜닝 , 파일 시스템 튜닝 , 압축 등과 같은 기본적인 하부 시스템을 설정한다 .자세한 사항은 src/core/core-default.xml 파일을 참고

fs.default.name : 기본 파일 시스템hadoop.tmp.dir : 하둡의 모든 데이터 저장 , 임시 공간의 최상위 경로

Page 28: 클라우드컴퓨팅구현기술 5장

Chapter 5

환결설정 (4) – hdf-site.xml

dfs.namenode.name.dir : 파일 디렉토리 정보 , 파일정보 등을 저장dfs.datanode.data.dir : 데이터 파일이 저장되는 위치dfs.datanode.max.xcievers : 동시 접속 수 제한 값

/master : 세컨드리 네임 노드가 실행될 서버 기술/slaves : 데이터 노드가 실행될 서버 기술

Page 29: 클라우드컴퓨팅구현기술 5장

Chapter 5

환결설정 (5) – hadoop-metrics2.properties

각 기능별 (fs, mapreduce) 로 모니터링 데이터 수집하는 방식 설정

시스템 환경 변수에 HADOOP_HOME 를 설정 (0.21 이후 )

Page 30: 클라우드컴퓨팅구현기술 5장

Chapter 5

배포

Page 31: 클라우드컴퓨팅구현기술 5장

0 파일 저장소 & 파일 시스템

contents

1 구글 파일 시스템

2 하둡 파일 시스템 구성

3 하둡 파일 시스템 운영

4 하둡 파일 시스템 API 활용

Page 32: 클라우드컴퓨팅구현기술 5장

Chapter 5

실행과 관리

- 최초의 실행 시에는 파일 시스템을 포맷하는 명령을 실행한다 .- dfs.namenode.name.dir 에서 설정한 디렉토리 파일 초기화-> bin/hadoop namenode –format

>> http://server01(호스트네임 ):50070 으로 접속 네임노드의 상세정보를 볼 수 있다 .

이 외에 bin/hadoop 파일 실행 명령어는 ? 240page 참고

중지 명령어는 ? bin/stop-dfs.sh 혹은 kill명령어

Page 33: 클라우드컴퓨팅구현기술 5장

Chapter 5

데이터 노드 제거

- (10~20 분 ) 이상 heartbeat 을 보내지 않은 데이터 노드를장애노드로 판단하여 복제본을 하나 더 생성시키는 작업 수행

- Hdfs-site.xml 파일에 제거 <name>, <value> 작성이후 <value> 의 파일에 제거할 데이터 노드 기술( 242page 참고 )

- 서버 장애에 대해서 걱정할 점은 Name Node 의 SPOF뿐이다 !

Page 34: 클라우드컴퓨팅구현기술 5장

Chapter 5

사용자 루트 패스

- 반드시 ! 사용자 디렉토리를 생성하고 소유자 설정을 변경 !!

- 관리자 계정 = 리눅스 계정- 사용자 계정 = 사용자 디렉토리 <- 생성시켜주어야 한다 .

244page 참고

Page 35: 클라우드컴퓨팅구현기술 5장

Chapter 5

안전 모드

- 하둡 파일 시스템을 재시작하면 일정 기간 동안 안전모드 상태 돌입

- 알다시피 , 네임노드는 fsimage 의 정보를 갖고 온다 .

- 즉 , 블록 리포팅이 완료되기 전까지를 안전모드라고 한다 .

- 따라서 안전 모드를 고려하여 점검시간을 계산해라 !

bin/hadoop dfsadmin –safemode enter # 안전모드 시작bin/hadoop dfsadmin –safemode leave # 안전모드 해제

Page 36: 클라우드컴퓨팅구현기술 5장

0 파일 저장소 & 파일 시스템

contents

1 구글 파일 시스템

2 하둡 파일 시스템 구성

3 하둡 파일 시스템 운영

4 하둡 파일 시스템 API 활용

Page 37: 클라우드컴퓨팅구현기술 5장

Chapter 5

기본 파일처리 API

보통 hadoop-<version>-core.jar 형태로 제공

246page 를 참고하자 .

Page 38: 클라우드컴퓨팅구현기술 5장

Chapter 5

데모 : 블로그 애플리케이션

코드 5.3 은 BlogServiceHandler.java코드 5.4 는 BlogServer.java

250 ~ 252 page 참고

Page 39: 클라우드컴퓨팅구현기술 5장

Chapter 5

응용 사례 : 클라우드 스토리지 서비스

웹 서버 , WAS(톰캣 ) 을 이용한 네임노드 , 데이터노드 접근법

이외… 254page 교재 참고 ..

Page 40: 클라우드컴퓨팅구현기술 5장

Thank you