복붙노트

[HADOOP] HBase : 복제는 어떻게 작동합니까?

HADOOP

HBase : 복제는 어떻게 작동합니까?

현재 HBase를 Datastore로 평가하고 있지만 한 가지 질문에 답이 없습니다. HBase는 동일한 객체의 많은 복사본을 여러 노드 (일명 복제)에 저장합니다. HBase는 강한 일관성 (최종 일관성과 비교하여)을 특징으로하기 때문에 모든 복제본이 읽을 경우 동일한 값을 반환합니다.

HBase 개념을 이해함에 따라 값을 읽을 때 HBase 마스터는 데이터를 제공하는 RegionServer에 대해 쿼리를받습니다. 그러면 마스터의 발명없이 읽기 및 쓰기 요청을 할 수 있습니다. 어떻게 복제가 가능합니까?

이미 BigTable-Paper를 읽고 문서를 검색했지만 HBase 아키텍처에 대한 추가 정보는 없습니다.

감사!

해결법

  1. ==============================

    1.hbase은 당신이 생각하는 방식으로 어떤 복제도하지 않습니다. HDFS 위에 구축되어 hbase 테이블을 구성하는 데이터 블록에 대한 복제를 제공합니다. 그러나 하나의 regionserver 만 주어진 행에 대한 데이터를 제공하거나 씁니다.

    hbase은 당신이 생각하는 방식으로 어떤 복제도하지 않습니다. HDFS 위에 구축되어 hbase 테이블을 구성하는 데이터 블록에 대한 복제를 제공합니다. 그러나 하나의 regionserver 만 주어진 행에 대한 데이터를 제공하거나 씁니다.

    일반적으로 regionservers는 데이터 노드와 함께 배치됩니다. HDFS의 모든 데이터 쓰기는 가능하면 먼저 로컬 노드로 이동하고 동일한 랙에있는 다른 노드와 다른 랙에있는 다른 노드로 이동합니다 (HDFS에서 복제 계수가 3 인 경우). 따라서 지역 서버는 결국 로컬 서버에서 제공되는 모든 데이터로 끝납니다.

    차단 : WAL (Write Ahead Log)이 디스크로 플러시 될 때까지 유일한 블록입니다. 로그가 항상 재생 될 수 있으므로 데이터가 손실되지 않습니다. 이전 버전의 hbase에서는 HDFS가 최근까지 내구성있는 추가 작업을 지원하지 않았기 때문에이 기능이 작동하지 않았습니다. append와 HBase를 모두 지원하는 Hadoop의 공식 Apache 릴리즈가 없기 때문에 우리는 당장 이상한 상태에 있습니다. 그 동안 직접 추가 패치를 적용하거나 Cloudera 배포판을 사용할 수 있습니다 (권장).

    HBase에는 하나의 클러스터에서 다른 클러스터로 데이터를 복제 할 수있는 복제 기능이 있습니다.

  2. from https://stackoverflow.com/questions/5417574/hbase-how-does-replication-work by cc-by-sa and MIT license