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를 기본으로 배우는지 이해하는 중
'빅데이터' 카테고리의 다른 글
[빅데이터 6] 데이터 통계 분석 (확률/통계, 확률 분포, 모집단의 추정) (0) | 2021.09.28 |
---|---|
[빅데이터 5] 빅데이터 분석 도구 R 문법 (0) | 2021.09.27 |
[빅데이터 4] 빅데이터 분석 도구 R (0) | 2021.09.26 |
[빅데이터 2] 빅데이터 생성, 수집, 예시 (0) | 2021.09.21 |
[빅데이터 1] 빅데이터의 개념 (0) | 2021.09.21 |
댓글