비디오: Cloudera - 차세대 빅데이터 스토리지 솔루션 (feat.Kudu) 2024
RegionServers는 하나이지만 개별 영역의 작동 방식도 살펴야합니다. HBase에서 테이블은 개별 지역으로 구성되어있을뿐만 아니라 여러 RegionServers에 분산되어 있습니다. 표가 분할되면 분할이 영역이됩니다. Regions는 다양한 키 - 값 쌍을 저장하며 각 RegionServer는 구성 가능한 수의 region을 관리합니다.
하지만 개별 지역은 어떻게 생겼습니까? HBase는 열 패밀리 지향 데이터 저장소이므로 개별 영역에 속한 열 패밀리를 기반으로 키 - 값 쌍을 저장하는 방법은 무엇입니까? 다음 그림은 이러한 질문에 대한 답변을 시작하고 HBase 아키텍처에 대한 중요한 정보를 소화하도록 도와줍니다.
클라이언트가 키 - 값 쌍을 시스템에 넣으면 키가 처리되어 쌍이 속한 열 패밀리에 따라 데이터가 저장됩니다. 그림에서 볼 수 있듯이 각 열 패밀리 저장소 객체에는 BlockCache라는 읽기 캐시와 MemStore라는 쓰기 캐시가 있습니다. BlockCache는 임의의 읽기 성능을 돕습니다.
데이터는 HDFS에서 블록으로 읽혀 BlockCache에 저장됩니다. 데이터에 대한 후속 읽기 또는 근거리에 저장된 데이터는 디스크 대신 RAM에서 읽혀 지므로 전반적인 성능이 향상됩니다. Write Ahead Log (WAL, 간단히)는 HBase 기록이 신뢰할 수 있는지 확인합니다. RegionServer 당 하나의 WAL이 있습니다.
분산 컴퓨팅의 철칙에 항상 귀 기울입니다. 실패는 예외는 아니며 특히 수백 또는 수천 개의 서버를 클러스터링 할 때 일반적입니다. Google은 BigTable 및 HBase를 설계 할 때 Iron Law를 따랐습니다.HBase에서 데이터를 쓰거나 수정할 때 데이터는 먼저 HDFS에 저장된 WAL에 유지 된 다음 데이터가 MemStore 캐시에 기록됩니다. 구성 가능한 간격에서 MemStore에 저장된 키 - 값 쌍이 HDFS의 HFiles에 기록되고 나면 WAL 항목이 지워집니다.
디스크에 최종 MemStore 쓰기가 시작되기 전에 초기 WAL 쓰기가
실패한 후
오류가 발생하면 데이터 손실을 피하기 위해 WAL을 재생할 수 있습니다. 세 개의 HFile 객체는 한 열 패밀리에 있고 두 개의 HFile 객체는 다른 열 패밀리에 있습니다. HBase의 설계는 MemStore에 저장된 열 패밀리 데이터를 플러시 당 하나의 HFile로 플러시하는 것입니다. 그런 다음 구성 가능한 간격에서 HFiles가 더 큰 HFiles로 결합됩니다. 이 전략은 HBase의 중요한 압축 작업을 대기열에 넣습니다.