- 빅데이터를 저장, 처리, 분석할 수 있는 자바 기반 소프트웨어 프레임워크
- HDFS와 맵리듀스가 핵심
- HDFS로 데이터를 저장, MapReduce로 데이터를 처리
- RDBMS와 경쟁하는 것이 아닌 RDBMS와 협력
2. HDFS?
- Hadoop Distributed File System의 약자이다.
- 수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일시스템이다.
- HDFS는네임노드(마스터)와데이터노드(슬레이브)로 구현
3. 네임노드(NameNode)?
- 메타데이터관리, 데이터노드 모니터링( 데이터노드의 실행상태와 용량을 체크 ), 블록관리, 클라이언트 요청접수
4. 데이터노드(DataNode)?
- 클라이언트가 HDFS에 저장하는 파일을 로컬 디스크에 유지.
5. HDFS에 파일저장
- 클라이언트에서 네임노드와 통신. 스트림(DFSOutputStream)을 생성.
- 생성된 스트림을 통해 클라이언트에서 파일을 데이터노드에 전송. ...
6. HDFS에 파일읽기
- 클라이언트에서 네임노드의 입력스트림객체(DFSInputStream)를 통해 스트림객체를 생성.
- 생성된 스트림객체를 이용하여 조회.
- 클라이언트에서 스트림객체에서 블록리더기 생성
- 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/
'hacking or software engineering skills > cloud computing' 카테고리의 다른 글
[aws] mac os, linux에서 안전하게 jupyter 서버 접속하기 (0) | 2020.12.17 |
---|---|
docker 공부 정리 (0) | 2020.12.03 |
gcp, ssh로 jupyter lab 안전하게 접속 (0) | 2020.11.12 |
[mac] local에서 gcp, aws instance에 파일 업로드/다운로드 (0) | 2020.11.09 |
[gcp] gcp로 jupyter lab, jupyter notebook 접속, 클라언트 작동 중지시 서버 작동이 멈출때 방법 (gcp jupyter lab 백그라운드 실행, tmux 이용 ssh 연결 관리) (0) | 2020.09.18 |