ACID | atomicity, consistency, isolation, durability 원자성, 일관성, 고립성, 지속성 관계형 데이터의 원칙. 이를 위해 많은 리소스 사용. NoSQL 은 ACID 지키지 않음 , Key Value 구조. 단순화 , 쓰기 읽기 가능하게. |
|
HBase | http://hbase.apache.org/ 하둡 HDFS위에 만들어진 분산 컬럼지향 NoSQL 데이터베이스 스키마변경 자유롭다. 실시간 임의 읽기/쓰기 제공, 복제기능 지원. 성능 안정성 보장. |
|
라이센스 | Apache | |
유사 프로젝트 | BigTable, Cassandra, MongoDB | |
주요 구성요소 |
HTable | 칼럼 기반 데이터 구조를 정의한 테이블 공통점이 있는 칼럼들의 그룹을 묶은 칼럼패밀리와 테이블의 로우를 식별해서 접근하기 위한 로우키로 구성 cf) 관계형데이터베이스는 로기반, 1~10번 컬럼. 10번만 보려고해도 1~9까지봐야함. 컬럼기반 데이타 구조는. 10번 다이렉트 참조 가능. 빠른 스캔가능 |
HMaster (서버) | HRegion 서버를 관리하며, HRegion들이 속한 HRegion 서버의 메타 정보를 관리. | |
HRegion (서버) | HTable의 크기에 따라 자동으로 수평분할이 발생하고, 이때 분할된 블록을 HRegion 단위로 지정 | |
HRegionServer | 분산 노드별 HRegionServer가 구성되며, 하나의 HRegionServer에는 다수의 HRegion이 생성되어 HRegion을 관리 | |
Store | 하나의 Store에는 칼럼 패밀리가 저장 및 관리되며, MemStore와 HFile로 구성됨. | |
MemStore | Store 내의 데이터를 인메모리에 저장 및 관리하는 데이터 캐시영역 | |
HFile | Store 내의 데이터를 스토리지에 저장 및 관리하는 영구 저장영역. | |
아키텍처 | ||
![]() 분산데이타베이스 아키텍처 클라이언트 -> 주키퍼 통해 HMaster 접근. HTable 기본정보 해당 HRegion 정보 알아냄 클라이언트 HRegionSever 액세스. MemStore 데이터 기록. 특정크기되면 -> HFile -> 하둡저장 : compaction(컴팩션, 꽉채움) : 파일 뭉치기. minor - compaction : 최근 생성된 작은 파일들을 큰파일로 재작성. - hbase.hstore.compaction.min , 기본3, 큰값을 넣으면 minor 지연, 나중에 부하가능성. - hbase.hstore.compaction.max , - hbase.hstore.compaction.min.size, major - compaction : 모든 파일을 하나의 파일로 구성 - hbase.hregion.majorcompaction.jitter 기본 0.2 (20%), 출처: https://datacookbook.kr/40 [DATA COOKBOOK] |
||
활용방안 | 운잔자 운행로그 400kb/1초 -> 플럼-> 카프카-> 스톰 -> HBase HRegionServer1 - HRegion1 (Driver Info1, 4) HRegionServer2 - HRegion2 (Driver Info2, 5) HRegionServer3 - HRegion3 (Driver Info3, ....) -> 스마트카 운전자의 실시간 운행정보 적재 운전자의 운행 정보를 빠르게 검색 및 조회 . 카프카 : MoM: 대규모 메시지 버퍼링, 메시지 오리엔티드 미들웨어 시스템 Topic 비동기 저장. 스톰: 카프카 데이터 빼냄. . 카프카의 컨슈머. 병렬분산.... 스톰이 빼온 데이터 Hbase에 저장. |
|
설치 | 1. 설치 CM 홈 >클러스터 콤보박스 > Add Service > Master , HBase Thrift Server , RegionServer -> 02서버로 설정 > 설정 default 값. 복제, 인덱스 사용 설정 참고. > HBase 컴포넌트는 하둡의 얀 위에 설치 2. 환경설정 ---HBase Thrift Http 서버 활성화 ---- HBase > 구성 > HBase Thrift Http서버설정(hbase.regionserver.thrift.http) Enable HBase Thrift Http Server(hbase.thrift.ssl.enabled) : HBase (Service-Wide) : 서비스 전체 활성화 3. HBase 서비스 시작 or 재시작 >>Master서버 3개의 Region Server기동화면 활성화됨. ![]() 4. HBase 처럼 규모가 있는 컴포넌트 설치되면 이미 설치되 소프트웨어(주키퍼, HDFS,YARN, 등) 클라이언트 설정값 변동발생, 클라이언트 구성 재배포(Re-deploy client configuration) 통해 변경사항 반영. 5. 정상설치확인 서버2번 접속 $hbase shell $create 'smartcar_test_table' , 'cf' $put 'smartcar_test_table', 'row-key1', 'cf:model', 'z0001' $put 'smartcar_test_table', 'row-key1', 'cf:no', '12345' ![]() $get 'smartcar_test_table', 'row-key1' ![]() ** 테이블은 disable 후 삭제가능 $disable 'smartcar_test_table' $drop 'smartcar_test_table' ![]() $exit 6. HBase 관리자 화면. CM > HBase > WebUI http://server02.hadoop.com:16010/master-status HBase는 자원소모가 높은 서버로 사용않을때는일시정지 |
|
RegionSplit | 분산되어 있는 Hbase 내부에 리전이 만들어짐. 내부 리전이 분산되도록 함. = 샤딩. 리젼..여러 스플릿 정책. ex) 사이즈 리전 스플릿 과거. , 이클립스 인투 오퍼 바운더리 리전정책 사용. 특정테이블 만들고 초기 대규모 데이터 예상되면 미리 스플릿하는게 좋음. $hbase org.apache.hadoop.hbase.util.RegionSpllitter DriverCarINfo HexStringSplit -c 4 -f cf1 # 고사양 4, 저사양 2 # cf1 : 컬럼패밀리... 대상으로 리전 스플릿. |
|
atomicity 아토믹씨티 원자성.
'Data' 카테고리의 다른 글
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 15]Storm (0) | 2021.05.27 |
---|---|
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 14]redis (0) | 2021.05.27 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 12]적재-실시간 로그/분석 (0) | 2021.05.27 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 11]주키퍼 (0) | 2021.05.26 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 10]하둡 (0) | 2021.05.26 |