H베이스 Archi강의: 사용 사례, 구성 요소 및 데이터 모델

H베이스 Archi강의 및 주요 구성 요소

HBase 아키텍처는 주로 4가지 구성 요소로 구성됩니다.

  • H마스터
  • HRegion서버
  • H지역
  • 동물원의 관리자
  • HDFS

HBase의 자세한 아키텍처와 구성 요소는 다음과 같습니다.

H베이스 Archi강의
H베이스 Archi강의 다이어그램

H마스터

H마스터 HBase에서 HBase 아키텍처의 마스터 서버 구현입니다. 클러스터에 있는 모든 Region Server 인스턴스를 모니터링하는 모니터링 에이전트 역할을 하며 모든 메타데이터 변경 사항에 대한 인터페이스 역할을 합니다. 분산 클러스터 환경에서 마스터는 NameNode에서 실행됩니다. 마스터는 여러 백그라운드 스레드를 실행합니다.

HMaster가 HBase에서 수행하는 중요한 역할은 다음과 같습니다.

  • 클러스터 내 노드의 성능과 유지관리 측면에서 중요한 역할을 합니다.
  • HMaster는 관리 성능을 제공하고 다양한 지역 서버에 서비스를 배포합니다.
  • HMaster는 지역 서버에 지역을 할당합니다.
  • HMaster는 클러스터에 있는 노드의 부하를 처리하기 위해 부하 분산 및 장애 조치를 제어하는 ​​기능을 갖추고 있습니다.
  • 클라이언트가 스키마를 변경하거나 메타데이터 작업을 변경하려고 하면 HMaster가 이러한 작업에 대한 책임을 집니다.

HMaster 인터페이스에서 노출되는 일부 메서드는 주로 메타데이터 지향 메서드입니다.

  • 테이블(createTable, RemoveTable, 활성화, 비활성화)
  • ColumnFamily(열 추가, 열 수정)
  • 지역(이동, 할당)

클라이언트는 HMaster와 ZooKeeper 모두와 양방향으로 통신합니다. 읽기 및 쓰기 작업의 경우 HRegion 서버와 직접 연락합니다. HMaster는 리전을 리전 서버에 할당하고, 차례로 리전 서버의 상태를 확인합니다.

전체 아키텍처에서 우리는 여러 개의 지역 서버를 가지고 있습니다. 모든 로그 파일을 저장할 지역 서버에 있는 Hlog.

HBase 지역 서버

HBase Region Server가 클라이언트로부터 쓰기 및 읽기 요청을 받으면 요청을 실제 컬럼 패밀리가 있는 특정 지역에 할당합니다. 그러나 클라이언트는 HRegion 서버와 직접 연락할 수 있으므로 HRegion 서버와의 통신과 관련하여 클라이언트에 대한 HMaster 필수 권한이 ​​필요하지 않습니다. 클라이언트는 메타데이터 및 스키마 변경과 관련된 작업이 필요할 때 HMaster의 도움이 필요합니다.

HRegionServer는 Region Server 구현입니다. 분산 클러스터에 있는 지역 또는 데이터를 제공하고 관리하는 역할을 합니다. 지역 서버는 Hadoop 클러스터에 있는 데이터 노드에서 실행됩니다.

HMaster는 여러 HRegion 서버와 연결하여 다음 기능을 수행합니다.

  • 호스팅 및 관리 지역
  • 자동으로 지역 분할
  • 읽기 및 쓰기 요청 처리
  • 클라이언트와 직접 소통

HBase 영역

HRegions는 테이블의 분포로 구성되고 Column family로 구성된 HBase 클러스터의 기본 빌딩 요소입니다. 여기에는 각 Column family에 대해 하나씩 여러 개의 스토어가 포함됩니다. 주로 Memstore와 Hfile의 두 가지 구성 요소로 구성됩니다.

주 키퍼

HBase Zookeeper는 구성 정보를 유지하고 분산 동기화를 제공하는 중앙 모니터링 서버입니다. 분산 동기화는 노드 간 조정 서비스를 제공하는 책임이 있는 클러스터에서 실행되는 분산 애플리케이션에 액세스하는 것입니다. 클라이언트가 지역과 통신하려면 서버의 클라이언트가 먼저 ZooKeeper에 접근해야 합니다.

이는 오픈 소스 프로젝트이며 많은 중요한 서비스를 제공합니다.

에서 제공하는 서비스 주 키퍼

  • 구성 정보 유지
  • 분산 동기화를 제공합니다
  • 지역 서버와의 클라이언트 통신 구축
  • 다양한 지역 서버를 나타내는 임시 노드 제공
  • 클러스터에서 사용 가능한 서버를 검색하기 위한 임시 노드의 마스터 서버 사용성
  • 서버 장애 및 네트워크 파티션을 추적하려면

마스터 및 HBase 슬레이브 노드(지역 서버)가 ZooKeeper에 등록되었습니다. 클라이언트는 마스터 및 지역 서버에 연결하기 위해 ZK(zookeeper) 쿼럼 구성에 액세스해야 합니다.

HBase 클러스터에 존재하는 노드에 장애가 발생하면 ZKquoram은 오류 메시지를 트리거하고 장애가 발생한 노드를 복구하기 시작합니다.

HDFS

HDFS는 분산형 Hadoop입니다. 파일 시스템, 이름에서 알 수 있듯이 저장소를 위한 분산 환경을 제공하며, 상용 하드웨어에서 실행되도록 설계된 파일 시스템입니다. 각 파일을 여러 블록에 저장하고, 내결함성을 유지하기 위해 블록은 Hadoop 클러스터에 복제됩니다.

HDFS는 높은 수준의 내결함성을 제공하며 저렴한 상용 하드웨어에서 실행됩니다. 클러스터에 노드를 추가하고 저렴한 상용 하드웨어를 사용하여 처리 및 저장을 수행하면 기존 하드웨어에 비해 클라이언트에게 더 나은 결과를 제공합니다.

여기에서 각 블록에 저장된 데이터는 3개의 노드에 복제됩니다. 어떤 노드가 다운되더라도 데이터 손실은 없으며 적절한 백업 복구 메커니즘을 갖게 됩니다.

HDFS HBase 구성 요소와 접촉하고 대량의 데이터를 분산 방식으로 저장합니다.

HBase 데이터 모델

HBase 데이터 모델 테이블, 행, 열 패밀리, 셀, 열 및 버전으로 구성된 구성 요소 집합입니다. HBase 테이블에는 기본 키로 정의된 요소가 있는 열 패밀리와 행이 포함되어 있습니다. HBase 데이터 모델 테이블의 열은 객체에 대한 속성을 나타냅니다.

HBase 데이터 모델은 다음 요소로 구성됩니다.

  • 테이블 세트
  • 컬럼 패밀리와 행이 있는 각 테이블
  • 각 테이블에는 기본 키로 정의된 요소가 있어야 합니다.
  • 행 키는 HBase에서 기본 키 역할을 합니다.
  • HBase 테이블에 대한 모든 액세스는 이 기본 키를 사용합니다.
  • HBase에 존재하는 각 열은 객체에 해당하는 속성을 나타냅니다.

HBase 사용 사례

다음은 다양한 기술적 문제에 대한 솔루션에 대한 자세한 설명과 함께 HBase 사용 사례의 예입니다.

문제 정책 해법
통신 산업 다음과 같은 기술적 문제에 직면

  • 통신 도메인에서 생성된 수십억 개의 CDR(통화 상세 기록) 로그 레코드 저장
  • 고객의 CDR 로그 및 청구 정보에 대한 실시간 액세스 제공
  • 기존 데이터베이스 시스템에 비해 비용 효율적인 솔루션 제공
HBase는 수십억 개의 자세한 통화 기록 행을 저장하는 데 사용됩니다. 기존 RDBMS 데이터베이스에 매달 20TB의 데이터가 추가되면 성능이 저하됩니다. 이 사용 사례에서 대량의 데이터를 처리하려면 HBase가 가장 좋은 솔루션입니다. HBase는 빠른 쿼리를 수행하고 기록을 표시합니다.
The 은행 산업 매일 수백만 개의 레코드를 생성합니다. 이 외에도 금융업계에도 자금거래에서 사기를 탐지할 수 있는 분석 솔루션이 필요하다. 방대한 양의 데이터를 저장, 처리, 업데이트하고 분석을 수행하기 위한 이상적인 솔루션은 HBase를 여러 Hadoop 생태계 구성 요소와 통합하는 것입니다.

그 외에도 HBase를 사용할 수 있습니다

  • 무거운 애플리케이션을 작성해야 할 때마다.
  • 온라인 로그 분석을 수행하고 규정 준수 보고서를 생성합니다.

HBase의 저장 메커니즘

HBase는 열 중심 데이터베이스이며 데이터는 테이블에 저장됩니다. 테이블은 RowId를 기준으로 정렬됩니다. 아래 표시된 것처럼 HBase에는 테이블에 있는 여러 컬럼 패밀리의 모음인 RowId가 있습니다.

스키마에 존재하는 열 패밀리는 키-값 쌍입니다. 각 열 패밀리를 자세히 살펴보면 여러 개의 열이 있습니다. 열 값은 디스크 메모리에 저장됩니다. 테이블의 각 셀에는 타임스탬프 및 기타 정보와 같은 고유한 메타데이터가 있습니다.

HBase의 저장 메커니즘
HBase의 저장 메커니즘

HBase에 오면 테이블 스키마를 나타내는 주요 용어는 다음과 같습니다.

  • 작업대: 행 컬렉션이 존재합니다.
  • : 컬럼 패밀리의 컬렉션입니다.
  • 컬럼 패밀리: 열의 모음입니다.
  • : 키-값 쌍의 컬렉션입니다.
  • 네임 스페이스: 테이블의 논리적 그룹화.
  • 세포: {행, 열, 버전} 튜플은 HBase의 셀 정의를 정확하게 지정합니다.

열 기반 저장소와 행 기반 저장소

열 및 행 기반 저장소는 저장소 메커니즘이 다릅니다. 우리 모두 알고 있듯이 기존 관계형 모델은 데이터 행과 같은 행 기반 형식으로 데이터를 저장합니다. 열 기반 스토리지는 열 및 열 계열 측면에서 데이터 테이블을 저장합니다.

다음 표는 이 두 저장소 간의 몇 가지 주요 차이점을 보여줍니다.

열 기반 데이터베이스 행 기반 데이터베이스
프로세스와 분석에 관한 상황이 발생하면 우리는 이 접근 방식을 사용합니다. 와 같은 온라인 분석 처리 그리고 그것은 응용 프로그램입니다. 온라인 거래 프로세스 은행 및 금융 도메인과 같은 도메인에서는 이 접근 방식을 사용합니다.
이 모델에 저장할 수 있는 데이터의 양은 페타바이트 수준으로 매우 방대합니다. 소수의 행과 열을 위해 설계되었습니다.

HBase 읽기 및 쓰기 데이터 설명

클라이언트에서 Hfile로의 읽기 및 쓰기 작업은 아래 다이어그램에 표시되어 있습니다.

HBase 데이터 읽기 및 쓰기

단계 1) 클라이언트는 데이터 쓰기를 원하며 먼저 Regions 서버와 통신한 다음 Regions와 통신합니다.

단계 2) 컬럼 패밀리와 관련된 저장을 위해 memstore에 연락하는 지역

단계 3) 첫 번째 데이터는 Memstore에 저장되어 데이터가 정렬된 후 HFile로 플러시됩니다. Memstore를 사용하는 주된 이유는 Row Key를 기반으로 하는 분산 파일 시스템에 데이터를 저장하기 위해서입니다. HFiles가 HDFS에 기록되는 동안 Memstore는 리전 서버 메인 메모리에 배치됩니다.

단계 4) 클라이언트가 지역에서 데이터를 읽고 싶어합니다.

단계 5) 그러면 클라이언트는 Mem 저장소에 직접 액세스할 수 있고 데이터를 요청할 수 있습니다.

6단계) 클라이언트 데이터를 얻기 위해 HFiles에 접근합니다. 데이터는 클라이언트에 의해 가져오고 검색됩니다.

Memstore는 저장소에 대한 메모리 내 수정 사항을 보유합니다. HBase 영역의 객체 계층은 아래 표의 위에서 아래로 표시됩니다.

작업대 HBase 클러스터에 존재하는 HBase 테이블
지역 제시된 테이블의 HRegions
스토어 테이블의 각 지역에 대해 ColumnFamily별로 저장합니다.
멤스토어
  • 테이블에 대한 지역별 매장별 Memstore
  • HFiles로 플러시하기 전에 데이터를 정렬합니다.
  • 정렬로 인해 쓰기 및 읽기 성능이 향상됩니다.
저장파일 테이블의 각 지역별 매장별 StoreFiles
블록 StoreFiles 내부에 있는 블록

HBase 대 HDFS

HBase는 HDFS 위에서 실행되며 하둡. HDFS와 HBase의 주요 차이점은 데이터 작업 및 처리 측면에 있습니다.

HBASE HDFS
저지연 작업 높은 지연 시간 작업
무작위 읽기 및 쓰기 한 번 쓰기 여러 번 읽기
다음을 통해 액세스됨 쉘 명령, 클라이언트 API Java, REST, Avro 또는 Thrift 주로 MR(Map Reduce) 작업을 통해 액세스됨
저장과 처리를 모두 수행 가능 저장 공간에만 해당됩니다.

일부 전형적인 IT 산업 애플리케이션은 Hadoop과 함께 HBase 작업을 사용합니다. 애플리케이션에는 증권 거래소 데이터, 온라인 뱅킹 데이터 작업, Hbase 처리가 가장 적합한 솔루션 방법입니다.

요약

  • HBase 아키텍처 구성 요소: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HBase의 HMaster는 HBase 아키텍처에서 마스터 서버를 구현한 것입니다.
  • HBase 지역 서버가 클라이언트로부터 쓰기 및 읽기 요청을 받으면 실제 열 계열이 있는 특정 지역에 요청을 할당합니다.
  • HRegion은 테이블 분포를 포함하고 열 패밀리로 구성된 HBase 클러스터의 기본 구성 요소입니다.
  • HBase Zookeeper는 구성 정보를 유지 관리하고 분산 동기화를 제공하는 중앙 모니터링 서버입니다.
  • HDFS는 높은 수준의 내결함성을 제공하며 저렴한 상용 하드웨어에서 실행됩니다.
  • HBase 데이터 모델은 테이블, 행, 열 패밀리, 셀, 열 및 버전으로 구성된 구성 요소 집합입니다.
  • 열 및 행 기반 저장소는 저장소 메커니즘이 다릅니다.