본문 바로가기

hacking or software engineering skills/cloud computing

hadoop, hdfs ?하둡 공부 정리

728x90

- 빅데이터를 저장, 처리, 분석할 수 있는 자바 기반 소프트웨어 프레임워크

- HDFS와 맵리듀스가 핵심

- HDFS로 데이터를 저장, MapReduce로 데이터를 처리

- RDBMS와 경쟁하는 것이 아닌 RDBMS와 협력

2. HDFS?

- Hadoop Distributed File System의 약자이다.

- 수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일시스템이다.

- HDFS는네임노드(마스터)와데이터노드(슬레이브)로 구현

3. 네임노드(NameNode)?

- 메타데이터관리, 데이터노드 모니터링( 데이터노드의 실행상태와 용량을 체크 ), 블록관리, 클라이언트 요청접수

4. 데이터노드(DataNode)?

- 클라이언트가 HDFS에 저장하는 파일을 로컬 디스크에 유지.

5. HDFS에 파일저장

  1. 클라이언트에서 네임노드와 통신. 스트림(DFSOutputStream)을 생성.
  2. 생성된 스트림을 통해 클라이언트에서 파일을 데이터노드에 전송. ...

6. HDFS에 파일읽기

  1. 클라이언트에서 네임노드의 입력스트림객체(DFSInputStream)를 통해 스트림객체를 생성.
  2. 생성된 스트림객체를 이용하여 조회.
  3. 클라이언트에서 스트림객체에서 블록리더기 생성
  4. DFSInputStream은 모든 블록을 조회

7. 보조네임노드(Secondary Name Node)

- 네임노드가 메타데이타를 메모리에 담고 처리하는데 만약 서버가 리부팅되면 사라질 수 있다. HDFS는 이러한 점때문에editslog와fsimage라는 두 개의 파일을 생성한다.
- editslog는 HDFS의 모든 변경 이력을 저장 / fsimage는 메모리에 저장된 메타데이터의 파일 시스템 이미지를 저장
- editslog가 커지면 fsimage를 만드는데 시간이 많이 소요되게 된다.이러한 문제를 해결하기 위한 게 보조네임노드
- 보조네임노드는 fsimage를 갱신 (체크포인트, 보조네임노드를체크포인팅 서버라고도 함)
- 보조네임노드는 네임노드의 백업이 아닌 fsimage를 줄여주는 역할만 함

 

빅데이터 처리를 위한 방법

하둡 특성

1) Distributed : 수십만대의 컴퓨터에 자료 분산 저장 및 처리

2) Scalability : 용량이 증대되는대로 컴퓨터 추가

3) Fault-tolerent : 하나 이상의 컴퓨터가 고장나는 경우에도 시스템이 정상 동작. Node 가 고장난 경우, 마스터 노드는 이를 감지하고 다른 Node에 할당함으로써 해결

4) Open Source : 오픈 소스이다.

yookeun.github.io/java/2015/05/24/hadoop-hdfs/

 

하둡(Hadoop)의 HDFS에 대한 기본설명

하둡에서 HDFS에 대해 기본적인 기능을 알아보자. 아래내용은 도서 시작하세요! 하둡프로그래밍(위키북스/정재화지음)에서 HDFS만 발췌/요약정리한 내용이다. 하둡을 처음 공부하는 사람들에게

yookeun.github.io

kkn1220.tistory.com/121

 

아파치 하둡 HDFS 사용법(Cloudera 사용)

아파치 하둡 소개에 다음 버전으로 간단한 HDFS 사용법에 대해 소개하고자 한다. 소개는 http://kkn1220.tistory.com/120 를 참고 환경 구축: 가상 머신(Virtual box 또는 Vmware, Cloudera) cloudera는 맵알(Ma..

kkn1220.tistory.com