본문 바로가기
빅데이터

[빅데이터 3] 빅데이터 저장소

by 밍굴뒹굴 2021. 9. 26.
반응형

 

 


 

1. 빅데이터 저장소

 

CAP 이론의 세 가지 요소인 일관성(consistency), 가용성(availability), 지속성(partition tolerance)

기존의 RDBMS는 지속성의 관점에서 충족하지 못하였으나, 최근 빅데이터가 대두되며 지속성을 만족하는 빅데이터 저장소가 필수.

 

  • 일관성(consistency) : 모든 노드는 동일 시점에 동일 데이터 출력이 보장
  • 가용성(availability) : 노드가 이용 불가능해도 다른 노드 정상 작동 보장
  • 지속성(partition tolerance) : 데이터 손실이 발생해도 시스템 정상 작동 보장

 

 

2. 빅데이터 저장소 설계

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

  • 네임노드 서버 : 파일의 위치(iNode), 메타정보 관리, 클라이언트 요청
  • 보조 네임노드 서버 : 네임노드 서버의 백업 역할, 파일 시스템 복구
  • 데이터 노드 서버 : 고정된 크기의 블록 단위로 데이터를 나누어 저장

 

 

*NoSQL (Not-Only-SQL)

빅데이터 저장소 플랫폼으로 NoSQL은 주목받는 플랫폼이다.

키밸류, 빅테이블, 도큐먼트 등 다양한 데이터 모델을 제공하며, 비정형 데이터에 대응 가능하다.

 

<데이터 모델>

  • 키밸류 (KeyValue) : 특정 값을 고유키와 대응하여 스키마 없이 데이터를 저장하는 유형
  • 순차적 키밸류 (Ordered KeyValue) : 키밸류 쌍을 순차적으로 저장, 연속성을 부여함으로써 영역 스캔 효율↑
  • 빅테이블 (Bigtable) : 테이블 형식(Tabular), 2~3단계까지 재귀적 구조 형성 가능
  • 도큐먼트 (Document) : 객체 데이터베이스(ODBMS)의 파생형. 데이터 구조 깊이에 제한 없음
  • 그래프 (Graph) : 가변적인 데이터 노드 간 연결 구조제약 없는 관계 형성 가능

<시스템 구성>

  • 마스터-슬레이브 (Master-Slave) : 마스터 노드가 슬레이브/데이터의 메타 정보 관리, 마스터에 부하 증가↑, 서버 추가/삭제 작업에 용이
  • 라운드 테이블 (Round Table) : 마스터 노드 없음 → 트래픽 분산 용이, 멤버 노드 추가/삭제 시 데이터 이동 →트래픽 증가, 해시테이블(HashTable) 기반 구조

 

3. 빅데이터 저장소 관리
하둡 명령어

ls : 파일(폴더) 조회

put : 파일 올리기 #로컬 파일을 HDFS에 저장하는 명령

get : 파일 가져오기 #HDFS의 파일을 로컬로 가져오는 명령

cp : 파일 복사하기 #HDFS의 파일을 HDFS 상에서 복사

rm : 파일 삭제하기 #HDFS의 파일을 삭제하기

chmod : 권한 변경 #HDFS 상의 파일의 권한을 변경

chown : 소유권 변경 #HDFS 상의 파일의 소유권을 변경

 

예시)

> hadoop fs -ls /

> hadoop fs -put l_mingul.txt h_mingul.txt

> hadoop fs -get h_dingul.txt l_dingul.txt

> hadoop fs -cp mingul.txt dingul.txt

> hadoop fs -rm dingul.txt

> hadoop fs -chmod 700 mingul.txt

> hadoop fs -chown subscribe mingul.txt

틈새 홍보하기 ~ ㅋㅋㅋㅋㅋ 유튜브 구독 조아요~

 

 

MongoDB (몽고DB)

 

*MongoDB 특징

  • 문서 지향 데이터베이스 :  문서(document)와 배열(array)의 개념 도입 복잡한 계층 관계를 하나의 레코드로 표현 가능, NoSQL 데이터베이스
  • 더블 링크드 리스트 구조 : 데이터의 순방향-역방향 탐색 가능

 

 

*MongoDB 주요 개념

  • 데이터베이스Database 컬렉션의 논리적/물리적인 집합
  • 컬렉션Collection 구조적/개념적으로 유사한 도큐먼트의 집합
  • 익스텐트Extent 데이터 저장을 위한 논리 단위
  • 도큐먼트Document 정렬된 키(key)-값(value)의 집합

 

*MongoDB 명령어

 

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

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

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

drop( ) : 컬렉션을 삭제하는 명령

insert( ) : 도큐먼트를 추가하는 명령

remove( ) : 도큐먼트를 제거하는 명령

 

예시)

> use mydatabase

switched to db mydatabase

 

> db. dropDatabase()

> db. createCollection("test")

{ "ok" : 1 }

 

>db. test, drop()

true

 

 


대충 느낌은 c랑 비슷해서 적응하기 어렵지는 않은 정도,,,

왜 c를 기본으로 배우는지 이해하는 중

반응형

댓글