Hbase 소개 및 기본 명령 사용법

1. 개요

HBase는 신뢰성이 높고 성능이 뛰어나며 열 지향적이며 확장 가능한 분산 스토리지 시스템입니다.

클라이언트 시작 명령

방법 1 :

分别启动
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

방법 2 :

//启动
bin/start-hbase.sh
//关闭
bin/stop-hbase.sh

2. Hbase 아키텍처

1 클라이언트

클라이언트에는 Hbase에 액세스하기위한 인터페이스가 포함되어 있으며, 또한 클라이언트는 캐시의 .META. 메타 데이터 정보와 같은 Hbase 액세스를 가속화하기 위해 해당 캐시를 유지합니다.

2 사육사

HBase는 Zookeeper를 사용하여 고 가용성 마스터, RegionServer 모니터링, 메타 데이터 입력 및 클러스터 구성 유지 보수를 수행합니다. 구체적인 작업은 다음과 같습니다.

Zoopkeeper를 사용하여 클러스터에서 하나의 마스터 만 실행되도록합니다. 마스터가 비정상 인 경우 경쟁 메커니즘을 통해 새 마스터가 생성되어 서비스를 제공합니다.

Zoopkeeper를 통해 RegionServer의 상태를 모니터링하고 RegionSevrer가 비정상 일 경우 Master RegionServer에 온라인 및 오프라인 정보를 콜백 형태로 알려줍니다.

Zoopkeeper를 통해 메타 데이터를 저장하기위한 통합 항목 주소

3 ) Hmaster ( NameNode )

마스터 노드의 주요 임무는 다음과 같습니다.
배포 RegionServer 지역은 지역 오류가 발견 된 메타 데이터 정보
클러스터를
유지 관리 하는 클러스터 전반에 걸쳐로드 밸런싱을 유지
하는 것이며, RegionSever가 해당 지역
의 철거를 조정하는 데 실패 할 때 지역의 오류는 일반 지역 서버에 할당됩니다. Hlog 포인트
4 ) HregionServer (DataNode)

HregionServer는 사용자의 읽기 및 쓰기 요청을 직접 연결 합니다.

해당 기능은 다음과 같이 요약됩니다 . 클라이언트의 읽기 쓰기 요청

처리 하기 위해 마스터가 할당 한 영역을 관리합니다 .
기본 HDFS와의 상호 작용, HDFS에 데이터 저장
, 영역이 커진 후 분할을
담당 하고 담당합니다. Storefile의 병합.

5 HDFS

HDFS는 Hbase에 대한 궁극적 인 기본 데이터 저장소 서비스를 제공하는 동시에 HBase에 대한 고 가용성 (HDFS에 저장된 Hlog) 지원을
제공합니다 . 특정 기능은 다음과 같이 요약됩니다. 메타 데이터에 대한 기본 분산 저장소 서비스의
여러 복사본 을 제공하고 높은 신뢰성과 고 가용성 보장하는 테이블 데이터

3. 기본 지침

1. 클라이언트 입력

bin/hbase shell

2. 현재 네임 스페이스의 테이블보기

list

3. 테이블 만들기

테이블을 생성 할 때 column family를 선언해야합니다.

create 'student','info'

4. 데이터 삽입

hbase(main):004:0> put 'student','1001','info:sex','male'
hbase(main):004:0> put 'student','1001','info:age','18'
hbase(main):005:0> put 'student','1002','info:name','Janna'
hbase(main):006:0> put 'student','1002','info:sex','female'
hbase(main):007:0> put 'student','1002','info:age','20'

5. 데이터를 보려면 스캔

hbase(main):008:0> scan 'student'
hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW  => '1001'}
hbase(main):010:0> scan 'student',{STARTROW => '1001'}

6. 테이블 구조보기

hbase(main):011:0> describe 'student'

7. 지정된 필드의 데이터를 업데이트합니다 (실제로 데이터는 업데이트되지 않지만 데이터 레코드가 삽입되고 Hbase는 타임 스탬프를 통해 버전 VERSION을 제어합니다).

hbase(main):012:0> put 'student','1001','info:name','Nick'

hbase(main):013:0> put 'student','1001','info:age','100'

8. "지정된 행"또는 "지정된 열 패밀리 : 열"의 데이터보기

hbase(main):014:0> get 'student','1001'
hbase(main):015:0> get 'student','1001','info:name'

9. 통계 테이블 데이터 행

hbase(main):021:0> count 'student'

10. 데이터 삭제

rowkey의 모든 데이터 삭제

hbase(main):016:0> deleteall 'student','1001'

rowkey에서 데이터 열 삭제

hbase(main):017:0> delete 'student','1002','info:sex'

11. 테이블 데이터 지우기 (테이블을 지우는 작업 순서는 먼저 비활성화 한 다음 잘라 내기입니다)

hbase(main):018:0> truncate 'student'

12. 테이블 데이터 삭제

首先需要先让该表为disable状态:
hbase(main):019:0> disable 'student'
然后才可以drop这个表:
hbase(main):020:0> drop 'student'

13. 테이블 정보 변경

최신 타임 스탬프에 따라 3 가지 버전의 정보 열 패밀리에 데이터를 저장합니다.

hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}

14. 기타 명령

//创建命名空间
create_namespace '_'
//向指定命名空间创建表
create '命名空间:表名','列族'

4. Hbase 데이터 구조

1, RowKey

RowKey는 레코드를 검색하는 데 사용되는 기본 키입니다. HBASE 테이블의 행에 액세스하는 방법에는 세 가지가 있습니다.

1. 단일 RowKey를 통한 액세스 (get)

2. RowKey의 범위 (일반) 전달 (예)

3. 전체 테이블 스캔 (스캔)

RowKey는 임의의 문자열 이 될 수 있으며 HBASE에서 RowKey는 바이트 배열 로 저장됩니다 .

저장시 데이터는 RowKey의 사전 순 (바이트 순서)으로 저장됩니다. RowKey를 디자인 할 때 저장 기능을 완전히 정렬하고 함께 자주 읽는 행을 저장해야합니다. (위치 상관 관계)

2, 컬럼 패밀리

컬럼 패밀리 : HBASE 테이블의 각 컬럼은 특정 컬럼 패밀리에 속합니다.

column family는 테이블 스키마의 일부이며 열은 그렇지 않으며 테이블을 사용하기 전에 정의해야합니다.

3 、 셀

{rowkey, column Family : columu, version}에 의해 고유하게 결정되는 단위입니다. 셀의 데이터에는 유형이 없으며 바이트 코드 형식으로 저장됩니다.

4, 타임 스탬프

각 셀은 동일한 데이터의 여러 버전을 저장합니다. 버전은 타임 스탬프로 인덱싱됩니다.

타임 스탬프 유형은 64 비트 정수입니다. 타임 스탬프는 HBASE에서 할당 할 수 있으며 (데이터가 기록 될 때 자동으로) 타임 스탬프는 밀리 초까지 정확한 현재 시스템 시간입니다. 타임 스탬프는 클라이언트에 의해 명시 적으로 할당 될 수도 있습니다. 애플리케이션이 데이터 버전 충돌을 피하려면 고유 한 타임 스탬프를 생성해야합니다.

각 셀에서 서로 다른 버전의 데이터가 역 시간순으로 정렬됩니다 . 즉, 최신 데이터가 먼저 순위가 매겨집니다.

HBASE는 두 가지 데이터 버전 복구 방법을 제공합니다.

하나는 데이터의 마지막 n 버전을 저장하는 것입니다.

두 번째는 최신 버전 (예 : 지난 7 일)을 저장하는 것입니다.

5 、 네임 스페이스

1) 테이블 : 모든 테이블은 네임 스페이스의 멤버입니다. 즉, 테이블은 특정 네임 스페이스에 속해야합니다. 지정하지 않으면 기본 네임 스페이스에 있습니다.

2) RegionServer 그룹 : 네임 스페이스에는 기본 RegionServer 그룹이 포함됩니다.

3) Permission : Permission, 네임 스페이스를 통해 액세스 제어 목록 ACL ( Access Control List ) 을 정의 할 수 있습니다 . 예를 들어 테이블 생성, 테이블 읽기, 삭제, 업데이트 등이 있습니다.

4) Quota : 네임 스페이스가 포함 할 수있는 지역 수를 적용 할 수있는 Quota.

 

 

추천

출처blog.csdn.net/QJQJLOVE/article/details/107210293