HBase 아키텍처: 알아야 할 모든 것 [2022]
게시 됨: 2021-01-06정형 데이터와 비정형 데이터 모두 기하급수적으로 증가하고 있으며 Apache Hadoop 은 이러한 방대한 데이터를 처리하는 데 탁월함을 입증했습니다. 따라서 Apache Hadoop은 빅 데이터 세계에서 많은 주목을 받았습니다. 그러나 Hadoop의 HDFS 아키텍처에는 특정 제한 사항이 있습니다.
HDFS는 대기 시간이 긴 작업을 출력하며 많은 양의 읽기 및 쓰기 요청을 동시에 처리할 수 없습니다. 또 다른 제한 사항은 HDFS가 한 번 읽고 여러 번 읽는 아키텍처라는 점입니다. 즉, 데이터 세트를 변경하려면 파일을 완전히 다시 작성해야 합니다. HDFS 아키텍처의 이러한 제한은 HBase 아키텍처 의 필요성을 높였습니다 .
목차
HBase 란 무엇입니까?
HBase는 그 한계를 극복하기 위해 HDFS 위에 형성되는 컬럼 지향 데이터 스토리지 아키텍처입니다. HDFS의 기본 기능을 활용하고 이를 기반으로 실시간으로 대량의 읽기 및 쓰기 요청을 처리하여 확장성을 제공합니다. HBase 아키텍처 는 NoSQL 데이터베이스 이지만 클러스터 전체에 균등하게 데이터를 분산하여 유지 관리 프로세스를 용이하게 합니다. 이를 통해 HBase 데이터 모델의 데이터에 빠르게 액세스하고 변경할 수 있습니다. HBase에 대해 자세히 알아보세요.
HBase 데이터 모델의 구성 요소는 무엇입니까?
HBase 데이터 모델은 NoSQL 데이터베이스이기 때문에 개발자는 필요할 때 데이터를 쉽게 읽고 쓸 수 있어 HDFS 아키텍처보다 빠릅니다. 다음 구성 요소로 구성됩니다.
1. HBase 테이블 : HBase 아키텍처 는 열 지향입니다. 따라서 데이터는 테이블 기반 형식의 테이블에 저장됩니다.
2. RowKey : 기록되는 모든 데이터 세트에 RowKey가 할당됩니다. 이렇게 하면 HBase 테이블에서 특정 데이터를 쉽게 검색할 수 있습니다.

3. 열 : 열은 데이터 세트의 다른 속성입니다. 각 RowKey는 열을 무제한으로 가질 수 있습니다.
4. 컬럼 패밀리 : 컬럼 패밀리는 여러 컬럼의 조합입니다. 열 패밀리 읽기에 대한 단일 요청으로 해당 패밀리의 모든 열에 액세스할 수 있으므로 데이터를 더 빠르고 쉽게 읽을 수 있습니다.
5. 열 한정자 : 열 한정자는 일반 테이블의 열 제목 또는 속성 이름과 같습니다.
6. Cell : RowKey 및 열 한정자를 사용하여 식별되는 행-열 튜플입니다.
7. Timestamp : HBase 데이터 모델에 데이터가 저장될 때마다 타임스탬프와 함께 저장됩니다.
읽기: Hadoop 생태계의 구성 요소
HBase 아키텍처의 구성 요소는 무엇입니까?
HBase 아키텍처 는 HMaster, Region Server 및 ZooKeeper의 세 가지 주요 구성 요소로 구성됩니다 .
1. 에이치마스터
HMaster는 그 이름과 유사하게 작동합니다. 지역 서버(슬레이브)에 지역을 할당하는 것은 마스터입니다. HBase 아키텍처 는 자동 샤딩 프로세스를 사용하여 데이터를 유지 관리합니다. 이 과정에서 HBase 테이블이 너무 길어질 때마다 HMaster의 도움을 받아 시스템에서 배포합니다. HMaster의 일반적인 책임은 다음과 같습니다.
- 장애 조치 제어
- 지역 서버 및 Hadoop 클러스터 관리
- 테이블 생성 및 삭제와 같은 DDL 작업 처리
- 메타데이터 작업의 변경 사항 관리
- 지역 서버에 지역 관리 및 할당
- 요청을 수락하고 관련 지역 서버로 보냅니다.
2. 지역 서버
지역 서버는 모든 사용자 요청을 처리하는 끝 노드입니다. 여러 지역이 단일 지역 서버 내에서 결합됩니다. 이 영역에는 지정된 키 사이의 모든 행이 포함됩니다. 사용자 요청을 처리하는 것은 복잡한 실행 작업이므로 지역 서버는 요청을 원활하게 관리할 수 있도록 4개의 다른 구성 요소로 더 나뉩니다.

- WAL(Write-Ahead Log) : WAL은 모든 지역 서버에 연결되며 아직 드라이브에 커밋되지 않은 일종의 임시 데이터를 저장합니다.
- 블록 캐시 : 읽기 요청 캐시입니다. 최근에 읽은 모든 데이터는 블록 캐시에 저장됩니다. 자주 사용하지 않는 데이터는 재고가 가득 차면 자동으로 삭제됩니다.
- MemStore : 아직 디스크에 기록되지 않은 데이터를 저장하는 쓰기 캐시입니다.
- HFile : HFile은 커밋 이후의 모든 실제 데이터를 저장합니다.
3. 주키퍼
ZooKeeper는 HBase 아키텍처 의 통신을 가로지르는 다리 역할을 합니다 . 모든 지역 서버와 그 안에 있는 지역을 추적하는 역할을 합니다. 어떤 지역 서버와 HMaster가 활성화되어 있고 어떤 것이 실패했는지 모니터링하는 것도 ZooKeeper의 의무 중 하나입니다. 서버 영역이 실패했음을 발견하면 HMaster가 필요한 조치를 취하도록 트리거합니다. 반면에 HMaster 자체가 실패하면 경고 후에 활성화되는 비활성 HMaster를 트리거합니다. 모든 사용자와 HMaster는 지역 서버와 내부 데이터에 액세스하기 위해 ZooKeeper를 통과해야 합니다. ZooKeeper는 모든 지역 서버 목록이 포함된 .Meta 파일을 저장합니다. ZooKeeper의 책임은 다음과 같습니다.
- Hadoop 클러스터에서 통신 설정
- 구성 정보 유지 관리
- 지역 서버 및 HMaster 오류 추적
- 지역 서버 정보 유지 관리
HBase 아키텍처에서 요청은 어떻게 처리됩니까?
이제 HBase 아키텍처 의 주요 구성 요소와 해당 기능을 알았 으므로 아키텍처 전체에서 요청이 처리되는 방식에 대해 자세히 살펴보겠습니다.
1. HBase 아키텍처에서 검색 시작
검색을 초기화하는 단계는 다음과 같습니다.
- 사용자는 ZooKeeper에서 메타 테이블을 검색한 다음 해당 지역 서버의 위치를 요청합니다.
- 그런 다음 사용자는 RowKey를 사용하여 지역 서버에서 정확한 데이터를 요청합니다.
2. HBase 아키텍처의 쓰기 메커니즘
HBase 아키텍처 에서 작성하는 단계 는 다음과 같습니다.
- 클라이언트는 먼저 지역 서버를 찾은 다음 이를 변경하기 위한 데이터의 위치를 찾아야 합니다. (이 단계는 데이터 변환에만 관련되며 새로운 정보를 작성하기 위한 것은 아닙니다)
- 실제 쓰기 요청은 클라이언트가 데이터를 쓰는 WAL에서 시작됩니다.
- WAL은 데이터를 MemStore로 전송하고 사용자에게 승인을 보냅니다.
- MemStore가 데이터로 채워지면 데이터가 저장되는 HFile에 데이터를 커밋합니다.
3. HBase 아키텍처의 읽기 메커니즘
데이터를 읽으려면 먼저 관련 지역 서버에 액세스해야 합니다. 지역 서버가 알려지면 다른 프로세스에는 다음이 포함됩니다.

- 첫 번째 스캔은 블록 캐시인 읽기 캐시에서 수행됩니다.
- 다음 스캔 위치는 쓰기 캐시인 MemStore입니다.
- 블록 캐시 또는 MemStore에서 데이터를 찾을 수 없는 경우 스캐너는 HFile에서 데이터를 검색합니다.
HBase 아키텍처에서 데이터 복구는 어떻게 작동합니까?
Hbase 아키텍처 는 클러스터의 데이터 로드를 줄이기 위해 압축 및 영역 분할을 통해 데이터를 나눕니다. 그러나 충돌이 있고 복구가 필요한 경우 다음과 같이 수행합니다.
- ZooKeeper는 서버 오류가 발생하면 HMaster를 트리거합니다.
- HMaster는 충돌한 지역과 WAL을 활성 지역 서버에 배포합니다.
- 이러한 지역 서버는 WAL을 다시 실행하고 MemStore를 구축합니다.
- 모든 지역 서버가 WAL을 재실행하면 컬럼 패밀리와 함께 모든 데이터가 복구됩니다.
체크아웃: Hadoop 생태계 및 구성 요소
결론
데이터는 다양한 산업 분야에서 새로운 석유가 되었습니다. 따라서 Hadoop에는 여러 가지 직업 기회가 있습니다. upGrad 에서 Hadoop과 빅 데이터에 대한 모든 것을 배울 수 있습니다 .
Hbase, Big Data에 대해 더 알고 싶다면 PG Diploma in Software Development Specialization in Big Data 프로그램을 확인하십시오. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 손을 다룹니다. - 워크숍, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.