본문 바로가기
시간 관리 및 생산성 도구/빅데이터

[이론]5. 빅데이터의 저장소 설계와 관리

by Coralynn 2022. 8. 23.

한국교육검정원의 빅데이터전문가과정 중 빅데이터 처리과정 중 '저장'부분의 내용입니다. 공부를 계속할수록 슬슬 낯선 용어와 이론들이 나오기 시작합니다. 어려울수록 복습만이 답이죠. 차근차근 학습해보아요😄

 


 

 

빅데이터의 저장

 

1. 빅데이터 저장소 개요

1) CAP 이론

일관성 Consistency

: 모든 노드는 동일한 시점에 동일 데이터 출력이 보장

가용성 Availablity

: 노드가 이용 불가능해도 다른 노드 정상 작동 보장

지속성 Partition Tolerance

: 데이터 손실이 발생해도 시스템 정상 작동 보장

- RDBMS의 한계

2) RDBMS의 대안

ⓐ 하둡Hadoop

: 하둡 분산파일 시스템HDFS

- 대용량 데이터 처리에 용이

ⓑ NoSQL

: 비관계형 데이터 저장소

- 데이터의 손실에 대처 가능

ⓒ 레디스 Redis (NoSQL의 일종)

: NoSQL의 일정, 키-값 구조 저장소

- 인메모리 저장소 구조

ⓓ 우지 Oozie

: 자바 서블릿 컨테이너 기반 작업 엔진

- DAG표현 기반 작업job 제어

 

 

 

 

 

 

 

2. 빅데이터 저장소 설계

 

1) 하둡 분산 파일 시스템 HDFS 의 구성요소

네임노드 서버

: 파일의 위치iNode, 메타정보 관리, 클라이언트 요청

보조 네임노드 서버

: 네임노드 서버의 백업 역할, 파일 시스템 복구

데이터 노드 서버

: 고정된 크기의 블록 단위로 데이터를 나누어 저장

하둡의 데이터 처리과정
하둡의 데이터 처리과정 ​

 

2) NoSQL(Not-Only-SQL) 의 분류

■ 데이터 모델별 분류

ⓐ 키벨류 KeyValue

: 특정 값을 고유키와 대응하여 스키마 없이 데이터를 저장하는 유형

ⓑ 순차적 키벨류 Ordered KeyValue

: 키밸류 쌍을 순차적으로 저장

- 연속성을 부여함으로써 영역 스캔 효율 증가

ⓒ 빅테이블BigTable

: 테이블형식Tabular

- 2~3단계까지 재귀적 구조 형성 가능

ⓓ 도큐먼트Document

: 객체 데이터베이스ODBMS의 파생형

- 데이터 구조 깊이에 제한 없음

ⓔ 그래프Graph

: 가변적인 데이터 노드 간 연결 구조

- 제약없는 관계 형성 가능

■ 시스템 구성

 

ⓐ 마스터-슬레이브Master-Slave

: 마스터 노드가 슬레이브/데이터의 메타 정보 관리

- 서버 추가/삭제 작업에 용이

- 마스터 부가 증가 가능

ⓑ 라운드 테이블Round Table

: 해시테이블hash Table기반 구조

- 마스터 노드 없음 → 트래픽 분산 용이

- 멤버 노드 추가/삭제 시 데이터 이동 필요 → 트래픽 증가

 

 

 

3) MongoDB 몽고DB

■ MongoDB의 특징

: 문서 지향 데이터베이스

- 문서document와 배열array의 개념 도입

- 복잡한 계층 관계를 하나의 레코드로 표현 가능

- NoSQL 데이터 베이스

: 더블 링크드 리스크 구조

- 데이터의 순방향-역방향 탐색 가능

■ MongoDB의 주요 개념

 

ⓐ 데이터베이스 Database

: 컬렉션의 논리적/물리적인 집합

ⓑ 컬렉션

: 구조적/개념적으로 유사한 도큐먼트의 집합

ⓒ 익스텐트

: 데이터 저장을 위한 논리 단위

ⓓ 도큐먼트

: 정렬된 키Key-값Value의 집합

 

 

 

 

 

3. 빅데이터 저장소 관리

1) 하둡 명령어

ls : 파일(폴더) 조회

> hadoop fs -ls / 

Found 1 items 
drwxr-xr-x - hadoop supergroup 0 2019-02-22 06:08 /user​

 

put :로컬 파일을 HDFS에 저장

get : HDFS의 파일을 로컬로 가져오는 것

> hadoop fs -put 1_myData.txt h_myData.txt 

> hadoop fs -get h_mydata.txt 1_myData.txt

 

cp : copy, HDFS안에서 파일 복사

rm :remove , HDFS 내에서 파일 삭제

> hadoop fs -cp myData.txt myData2.txt 

> hadoop fs -rm myData2.txt

chmod : Change mode권한변경, HDFS상의 파일의 권한 변경

chown : Change own소유권 변경, HDFS상의 파일의 소유권을 변경

> hadoop fs -chmod 700 myData.txt 

Found 1 items 

> hadoop fs -chown bjhan myData.txt
 

2) MongoDB 명령

use : 데이터베이스를 생성(사용)하는 명령

dropDatabase() : 현재 사용하는 데이터베이스를 삭제

> use mydatabase 
switched to db mydatabase

> db.dropDatabase()

createCollection() : 컬렉션을 생성(사용)하는 명형

drop() : 컬렉션 삭제

> db.createCollection('test') 
{'ok' :1} 

> db.test.drop() 
true

insert() : 도큐먼트를 추가

> db.test.insert( 
... {'title':'big data', 'author':'djhan'} 
... {'title':'IoT', 'author':'bjhon'}
);

remove() : 도쿠먼트 제거

> db.test.remove({'title':'Big Data'})

 

반응형

댓글