복붙노트

[HADOOP] Hbase-hadoop 통합에서 데이터 노드, regionserver의 역할

HADOOP

Hbase-hadoop 통합에서 데이터 노드, regionserver의 역할

내 이해에서 행은 HBase 테이블에 삽입되고 다른 지역 서버에 지역으로 저장됩니다. 따라서 지역 서버는 데이터를 저장합니다.

Hadoop과 마찬가지로, 데이터는 hadoop 클러스터에있는 데이터 노드에 저장됩니다.

Hadoop 1.1.1에서 HBase 0.90.6을 다음과 같이 구성했다고 가정 해 보겠습니다.

2 개의 노드 - 마스터와 슬레이브

테이블 데이터가 지역 서버에 저장되는 경우 내 진술을 기반으로; 그러면 데이터 노드와 지역 서버의 역할은 무엇입니까?

해결법

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

    1.데이터 노드는 데이터를 저장합니다. 지역 서버는 기본적으로 I / O 작업을 버퍼링합니다. 데이터는 HDFS (즉, 데이터 노드)에 영구 저장됩니다. 나는 '마스터'노드에 지역 서버를 배치하는 것이 좋은 생각이라고 생각하지 않습니다.

    데이터 노드는 데이터를 저장합니다. 지역 서버는 기본적으로 I / O 작업을 버퍼링합니다. 데이터는 HDFS (즉, 데이터 노드)에 영구 저장됩니다. 나는 '마스터'노드에 지역 서버를 배치하는 것이 좋은 생각이라고 생각하지 않습니다.

    다음은 지역 관리 방법에 대한 간략한 그림입니다.

    복제 계수가 3 인 HDFS (NameNode + DataNodes)를 실행하는 클러스터가 있습니다 (각 HDFS 블록이 3 개의 다른 DataNode로 복사 됨).

    RegionServers는 DataNode와 동일한 서버에서 실행됩니다. 쓰기 요청이 RegionServer에 오면, 먼저 변경 사항을 메모리에 기록하고 로그를 커밋합니다. 그런 다음 어느 시점에서 HDFS의 영구 저장소에 변경 사항을 쓸시기가되었다고 결정합니다. 데이터 지역성이 발휘됩니다. 같은 서버에서 RegionServer와 DataNode를 실행하기 때문에 파일의 첫 번째 HDFS 블록 복제본이 동일한 서버에 기록됩니다. 두 개의 다른 복제본이 다른 DataNode에도 쓰여질 것입니다. 결과적으로 region을 제공하는 RegionServer는 거의 항상 로컬 데이터 사본에 액세스 할 수 있습니다.

    RegionServer가 충돌하거나 RegionMaster가 region을 다른 RegionServer에 재 할당하기로 결정한 경우 (클러스터 균형을 유지하기 위해)? 새 RegionServer는 먼저 원격 읽기를 수행해야하지만 압축이 수행되면 (변경 로그가 데이터에 병합 됨) 새 파일이 새 RegionServer에 의해 HDFS에 기록되고 로컬 사본이 RegionServer에 작성됩니다 ( DataNode와 RegionServer가 동일한 서버에서 실행되기 때문에 다시 말입니다.

    참고 : RegionServer 크래시의 경우 이전에 할당 된 영역이 여러 RegionServers에 재 할당됩니다.

    좋은 읽을 거리 :

    다음은 Google Bigtable과 HBase 구현 간의 명명법 차이입니다 (Lars George의 "HBase, The Definitive Guide").

  2. from https://stackoverflow.com/questions/13741946/role-of-datanode-regionserver-in-hbase-hadoop-integration by cc-by-sa and MIT license