예제가 포함된 HBase 셸 명령
⚡ 스마트 요약
HBase 셸 명령어를 사용하면 대화형 프롬프트에서 테이블과 데이터를 직접 관리할 수 있으며, 이러한 명령어는 일반 명령어, 생성 및 삭제와 같은 테이블 관리 명령어, put 및 get과 같은 데이터 조작 명령어, 그리고 클러스터 복제 명령어로 그룹화됩니다.
셸 명령어를 사용하여 HBase와 상호 작용하는 방법 Java API
하둡 위에 HBase를 성공적으로 설치하면 다양한 명령을 실행하고 여러 작업을 수행할 수 있는 대화형 셸이 나타납니다. 이러한 명령을 사용하여 데이터 테이블에 대한 다양한 작업을 수행함으로써 데이터 저장 효율성을 높이고 클라이언트에게 유연한 상호 작용 환경을 제공할 수 있습니다.
HBase와 상호 작용하는 방법은 두 가지가 있습니다.
- HBase 대화형 셸 모드 및
- 을 통하여 Java API.
HBase에서 대화형 셸 모드는 테이블 작업, 테이블 관리 및 데이터 모델링을 위해 HBase와 상호 작용하는 데 사용됩니다. Java API 모델을 사용하면 HBase의 모든 유형의 테이블 및 데이터 작업을 수행할 수 있습니다. 두 가지 방법 모두를 사용하여 HBase와 상호 작용할 수 있습니다. 두 방법의 유일한 차이점은 다음과 같습니다. Java API 사용 Java HBase에 연결하기 위해 코드를 사용하는 반면, 셸 모드는 셸 명령어를 사용하여 HBase에 연결합니다.
본론으로 들어가기 전에 HBase에 대해 간단히 복습해 보겠습니다.
- HBase 사용 하둡 HBase는 대용량 데이터를 저장하는 스토리지 시스템으로 파일 기반 방식을 사용합니다. HBase는 마스터 서버와 리전 서버로 구성됩니다.
- HBase에 저장될 데이터는 리전 형태로 저장됩니다. 또한, 이러한 리전들은 여러 리전 서버에 분산되어 저장됩니다.
- 이러한 셸 명령어를 사용하면 프로그래머는 완전한 셸 모드 상호 작용을 통해 테이블 스키마와 데이터 작업을 정의할 수 있습니다.
- 어떤 명령어를 사용하든, 그 내용은 HBase 데이터 모델에 반영될 것입니다.
- 우리는 Bash 셸과 같은 운영 체제 스크립트 인터프리터에서 HBase 셸 명령어를 사용합니다.
- Bash 셸은 대부분의 프로그램에서 기본 명령 인터프리터입니다. Linux 그리고 유닉스 운영 체제 배포판.
- HBase 고급 버전은 테이블에 대해 JRuby 스타일의 객체 지향 참조를 사용하는 셸 명령을 제공합니다.
- 테이블 참조 변수는 HBase 셸 모드에서 데이터 작업을 수행하는 데 사용할 수 있습니다.
예 :
- 이 튜토리얼에서는 'education'이라는 테이블 이름을 사용하고 'guru99'라는 열 이름에 해당하는 테이블을 만들었습니다.
- 일부 명령어에서 "guru99" 자체는 테이블 이름을 나타냅니다.
일반 명령
HBase에서 일반적인 명령어는 다음과 같은 범주로 분류됩니다.
- Status
- 버전
- Table_help(스캔, 삭제, 가져오기, 넣기, 비활성화 등)
- 우와 미
HBase 셸 명령에 접근하려면 먼저 아래에 언급된 코드를 실행해야 합니다.
hbase Shell
HBase 셸에 접속하면 아래에 언급된 모든 셸 명령어를 실행할 수 있습니다. 이러한 명령어를 사용하면 HBase 셸 모드에서 모든 종류의 테이블 작업을 수행할 수 있습니다. 대화형 셸 프롬프트는 아래와 같이 나타납니다.
예제를 통해 이러한 모든 명령과 사용법을 하나씩 살펴보겠습니다.
Status
Syntax:status
이 명령은 클러스터에 있는 서버 수, 활성 서버 수, 평균 부하 값 등 시스템 상태에 대한 자세한 정보를 제공합니다. 시스템 상태에 대한 자세한 정보를 원하는 정도에 따라 특정 매개변수를 전달할 수도 있습니다. 매개변수는 'summary', 'simple', 'detailed' 중 하나이며, 기본값은 'summary'입니다.
아래에서는 status 명령에 다양한 매개변수를 전달하는 방법을 보여줍니다. 아래 스크린샷을 보면 더 잘 이해할 수 있습니다.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
상태 출력은 아래와 같습니다.
이 상태 명령을 실행하면 현재 서버 수, 비활성 서버 수, 서버 평균 부하에 대한 정보가 표시됩니다. 아래 스크린샷은 활성 서버 1개, 비활성 서버 1개, 평균 부하 7.0000과 같은 정보를 보여줍니다.
버전
Syntax: version
버전 출력 결과는 아래와 같습니다.
- 이 명령은 명령 모드에서 현재 사용 중인 HBase 버전을 표시합니다.
- 버전 명령어를 실행하면 위와 같은 출력이 나타납니다.
테이블 도움말
Syntax:table_help
table_help 명령의 출력 결과는 다음과 같습니다.
이 명령은 다음을 안내합니다.
- 테이블 참조 명령이란 무엇이며 어떻게 사용하는가?
- 이 문서에서는 다양한 HBase 셸 명령어 사용법과 해당 구문을 제공합니다.
- 위 스크린샷은 "create" 및 "get_table" 명령어의 구문과 사용법을 보여줍니다. HBase에 테이블이 생성되면 이러한 명령어를 통해 테이블을 조작할 수 있습니다.
- 이 기능은 put, get과 같은 테이블 조작 명령 및 기타 모든 명령 정보를 제공합니다.
WHOAMI
Syntax: Whoami
whoami 명령어의 출력 결과는 아래와 같습니다.
"whoami" 명령어는 HBase 클러스터에서 현재 HBase 사용자 정보를 반환하는 데 사용됩니다. 다음과 같은 정보가 제공됩니다.
- HBase에 존재하는 그룹.
- 사용자 정보입니다. 예를 들어, 이 경우 "hduser"는 스크린샷에 표시된 사용자 이름을 나타냅니다.
TTL(Time To Live) – 속성
HBase에서는 컬럼 패밀리에 TTL(Time To Live) 속성을 사용하여 초 단위의 시간 값을 설정할 수 있습니다. HBase는 설정된 만료 시간이 되면 자동으로 행을 삭제합니다. 이 속성은 현재 버전을 포함하여 모든 버전의 행에 적용됩니다.
HBase에서 행에 대해 인코딩된 TTL 시간은 UTC로 지정됩니다. 이 속성은 테이블 관리 명령과 함께 사용됩니다. TTL 처리 방식과 컬럼 패밀리 TTL의 중요한 차이점은 다음과 같습니다.
- 셀 TTL은 초가 아닌 밀리초 단위로 표현됩니다.
- 셀 TTL은 컬럼 패밀리 수준의 TTL 설정보다 셀의 유효 수명을 연장할 수 없습니다.
테이블 관리 명령
이러한 명령어를 사용하면 프로그래머는 행과 열 패밀리를 포함하는 테이블 및 테이블 스키마를 생성할 수 있습니다. 다음은 테이블 관리 명령어입니다.
- 만들기
- 명부
- 설명
- 사용 안 함
- 비활성화_모두
- 사용
- Enable_all
- 드롭
- Drop_all
- 표시_필터
- 나이
- Alter_status
예제를 통해 HBase에서 다양한 명령어 사용법을 살펴보겠습니다.
만들기
Syntax: create <tablename>, <columnfamilyname>
예:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
생성 명령의 결과는 아래와 같습니다.
위 예제는 각 컬럼 패밀리에 대한 사양에 따라 지정된 이름으로 HBase에 테이블을 생성하는 방법을 설명합니다. 또한 테이블 범위 속성을 전달할 수도 있습니다. 'education' 테이블이 생성되었는지 확인하려면 아래의 "list" 명령을 사용합니다. 관련 내용도 참조하세요. HBase 테이블 생성 Java 그리고 껍질.
명부
Syntax:list
목록 출력 결과는 아래와 같습니다.
- "list" 명령은 HBase에 존재하거나 생성된 모든 테이블을 표시합니다.
- 위 스크린샷에 표시된 출력은 현재 HBase에 있는 기존 테이블을 보여줍니다.
- 이 스크린샷에서 볼 수 있듯이 HBase에는 총 8개의 테이블이 있습니다.
- 선택적으로 정규 표현식 매개변수를 전달하여 테이블의 출력 값을 필터링할 수 있습니다.
설명
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
describe 명령의 출력 결과는 다음과 같습니다.
이 명령은 명명된 테이블을 설명합니다.
- 이는 해당 테이블에 있는 컬럼 패밀리에 대한 자세한 정보를 제공합니다.
- 우리 경우에는 "교육"이라는 표에 대한 설명이 나옵니다.
- 이 정보는 테이블 이름, 컬럼 패밀리, 연결된 필터, 버전 및 기타 세부 정보를 제공합니다.
비활성화
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
비활성화 시 출력 결과는 아래와 같습니다.
- 이 명령은 지정된 테이블을 비활성화하는 작업을 시작합니다.
- 테이블을 삭제하거나 제거해야 하는 경우, 먼저 해당 테이블을 비활성화해야 합니다.
위 스크린샷에서처럼 테이블 교육 기능을 비활성화하고 있습니다.
비활성화_모두
Syntax: disable_all<"matching regex"
- 이 명령은 주어진 정규식과 일치하는 모든 테이블을 비활성화합니다.
- 구현 방식은 drop 명령과 동일합니다(단, 일치시키기 위한 정규 표현식이 추가됩니다).
- 테이블이 비활성화되면 사용자는 HBase에서 해당 테이블을 삭제할 수 있습니다.
- 삭제하거나 드롭하기 전에ping 테이블이라면 먼저 비활성화해야 합니다.
사용
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
활성화 출력은 아래와 같습니다.
- 이 명령은 지정된 테이블을 활성화하기 시작합니다.
- 비활성화된 테이블을 이전 상태로 되돌리려면 다음 명령어를 사용합니다.
- 테이블이 처음에 비활성화되었고 삭제되거나 제거되지 않은 경우, 비활성화된 테이블을 다시 사용하려면 이 명령을 사용하여 테이블을 활성화해야 합니다.
- 위 스크린샷에서 우리는 "교육" 테이블을 활성화하고 있습니다.
show_filters
Syntax: show_filters
show_filters 명령의 출력 결과는 다음과 같습니다.
이 명령은 ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter 등 HBase에 있는 모든 필터를 표시합니다.
드롭
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
드롭 출력은 아래와 같습니다.
드롭 명령을 실행할 때 다음 사항들을 준수해야 합니다.
- HBase에 있는 테이블을 삭제하려면 먼저 해당 테이블을 비활성화해야 합니다.
- HBase에 있는 테이블을 삭제하려면 먼저 해당 테이블을 비활성화해야 합니다.
- 따라서 테이블을 삭제하려면 먼저 disable 명령어를 사용하여 테이블을 비활성화해야 합니다.
- 위 스크린샷에서 보시는 바와 같이, 우리는 드롭하고 있습니다.ping 표 "교육".
- 이 명령을 실행하기 전에 "교육" 테이블을 비활성화해야 합니다.
drop_all
Syntax: drop_all<"regex">
- 이 명령은 지정된 정규 표현식과 일치하는 모든 테이블을 삭제합니다.
- 이 명령을 실행하기 전에 disable_all을 사용하여 테이블을 먼저 비활성화해야 합니다.
- 정규 표현식과 일치하는 테이블은 HBase에서 삭제될 예정입니다.
사용 가능
Syntax: is_enabled 'education'
이 명령은 지정된 테이블이 활성화되어 있는지 여부를 확인합니다. 일반적으로 "활성화"와 "활성화 여부 확인" 명령의 동작 간에 혼동이 있는데, 여기서 이를 명확히 설명합니다.
- 테이블이 비활성화된 경우, 해당 테이블을 사용하려면 enable 명령을 사용하여 활성화해야 합니다.
- is_enabled 명령은 테이블이 활성화되었는지 여부를 확인합니다.
변경
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
이 명령은 열 패밀리 스키마를 변경합니다. 정확히 무엇을 하는지 이해하기 위해 여기에 예를 들어 설명했습니다.
예시: 이 예시에서는 테이블과 해당 열에 대해 ALTER 명령 작업을 수행할 것입니다. 다음과 같은 작업을 수행할 것입니다.
- 단일 및 다중 열 패밀리 이름 변경.
- 테이블에서 컬럼 패밀리 이름을 삭제합니다.
- 테이블에서 범위 속성을 사용하는 다른 몇 가지 작업입니다.
'education' 테이블에서 현재 값에서 'guru99_1' 컬럼 패밀리로 변경하거나 추가하여 최대 5개의 셀 버전을 유지하려고 합니다. 여기서 'education'은 이전에 'guru99'라는 컬럼 이름으로 생성된 테이블 이름입니다. 아래와 같이 alter 명령어를 사용하여 컬럼 패밀리 스키마를 guru99에서 guru99_1로 변경하려고 합니다.
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
여러 컬럼 패밀리에 대해 ALTER 명령을 실행할 수도 있습니다. 예를 들어, 아래와 같이 기존 테이블 "education"에 두 개의 새 컬럼을 정의해 보겠습니다.
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- 이 명령어를 사용하면 한 번에 여러 열 스키마를 변경할 수 있습니다.
- 위 스크린샷에 보이는 guru99_2와 guru99_3은 education 테이블에 새로 정의한 두 개의 열 이름입니다.
- 이 명령어를 사용하는 방법은 이전 스크린샷에서 확인할 수 있습니다.
이 단계에서는 테이블에서 컬럼 패밀리를 삭제하는 방법을 살펴보겠습니다. 'education' 테이블에서 'f1' 컬럼 패밀리를 삭제하려면 아래 명령 중 하나를 사용하십시오. 결과는 다음 스크린샷에 나와 있습니다.
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
이 명령에서는 첫 번째 단계에서 생성한 guru99_1이라는 이름의 컬럼 스페이스를 삭제하려고 합니다. 아래 스크린샷에서 볼 수 있듯이, 테이블 범위 속성을 변경하는 방법과 테이블 범위 속성을 제거하는 방법, 이렇게 두 단계를 보여줍니다.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
1단계) MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH 등과 같은 테이블 범위 속성을 변경할 수 있습니다. 이러한 속성은 명령의 끝에 추가할 수 있습니다. 예를 들어, 영역의 최대 크기를 128MB 또는 다른 메모리 값으로 변경하려면 다음 명령을 사용합니다.
용법:
- 위에서처럼 MAX_FILESIZE를 테이블을 범위 속성으로 사용하여 사용할 수 있습니다.
- MAX_FILESIZE에 표시된 숫자는 바이트 단위의 메모리 용량입니다.
참고: MAX_FILESIZE 테이블 범위는 HBase에 있는 일부 속성에 따라 결정됩니다. MAX_FILESIZE 또한 테이블 범위 속성에 포함됩니다.
2단계) table_att_unset 메서드를 사용하여 테이블 범위 속성을 제거할 수도 있습니다. 아래 명령어를 참조하세요.
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- 위 스크린샷은 범위 속성과 함께 변경된 테이블 이름을 보여줍니다.
- `table_att_unset` 메서드는 테이블에 있는 속성을 제거하는 데 사용됩니다.
- 두 번째 경우에는 MAX_FILESIZE 속성을 해제합니다.
- 해당 명령을 실행하면 "education" 테이블에서 MAX_FILESIZE 속성이 단순히 해제됩니다.
alter_status
Syntax: alter_status 'education'
alter_status 명령의 출력 결과는 다음과 같습니다.
- 이 명령어를 통해 alter 명령어의 상태를 확인할 수 있습니다.
- 이는 업데이트된 스키마를 적용받은 테이블의 영역 수를 나타냅니다. 테이블 이름을 전달해야 합니다.
- 위 스크린샷에서 "1/1 지역 업데이트됨"이라고 표시되어 있습니다. 이는 한 지역의 업데이트가 완료되었음을 의미합니다. 업데이트가 성공적으로 완료되면 "완료"라는 메시지가 표시됩니다.
데이터 조작 명령
이러한 명령어는 테이블에 데이터를 입력하거나, 테이블에서 데이터를 검색하거나, 스키마를 삭제하는 등의 데이터 조작을 위해 테이블에서 작동합니다. 이러한 명령어에는 다음과 같은 것들이 있습니다.
- 카운트
- 넣어
- 돈을 받아가세요
- .
- 모두 삭제
- 자르기
- 주사
예제를 통해 이러한 명령어 사용법을 살펴보겠습니다. (참고 자료도 참조하세요.) HBase 데이터 읽기 및 쓰기.
카운트
Syntax: count <'tablename'>, CACHE =>1000
- 이 명령어는 테이블의 행 수를 가져옵니다. 반환되는 값은 행의 총 개수입니다.
- 현재 개수는 기본적으로 1000행마다 표시됩니다.
- 카운트 간격은 선택적으로 지정할 수 있습니다.
- 기본 캐시 크기는 10행입니다.
- count 명령어는 올바른 캐시로 구성하면 빠르게 작동합니다.
예:
hbase> count 'guru99', CACHE=>1000
카운트 결과는 아래와 같습니다.
이 예시에서는 "guru99" 테이블에서 한 번에 1000개의 행을 가져옵니다. 테이블에 더 많은 행이 있는 경우 캐시 값을 더 낮게 설정할 수 있습니다. 하지만 기본적으로는 한 번에 한 행씩 가져옵니다.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
테이블 "guru99"에 g와 같은 테이블 참조가 있다고 가정해 보겠습니다. 아래와 같이 테이블 참조에 대해서도 count 명령을 실행할 수 있습니다.
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
넣어
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
이 명령어는 다음과 같은 용도로 사용됩니다.
- 정의되거나 지정된 테이블이나 행 또는 열에 셀 '값'을 입력합니다.
- 선택적으로 타임스탬프를 연동할 수 있습니다.
예시: 여기서는 "guru99" 테이블의 r1행 c1열에 값을 입력합니다.
hbase> put 'guru99', 'r1', 'c1', 'value', 10
아래 스크린샷에서 볼 수 있듯이, “guru99” 테이블에 10, 15, 30이라는 세 가지 값을 입력했습니다.
테이블 "guru99"에 g와 같은 테이블 참조가 있다고 가정해 보겠습니다. 다음과 같이 테이블 참조에 대해 명령을 실행할 수도 있습니다.
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
"guru99"에 값을 입력하면 위 스크린샷과 같은 결과가 나타납니다. 입력값이 테이블에 올바르게 삽입되었는지 확인하려면 "scan" 명령어를 사용합니다. 아래 스크린샷에서 값이 올바르게 삽입된 것을 확인할 수 있습니다.
Code 발췌: 연습용
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443} put 'guru99', 'r1', 'Edu:c1', 'value', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put 'guru99', 'r1', 'Edu:c1', 'value', 30
위 코드 조각에서 우리는 다음과 같은 작업을 수행합니다.
- 여기서는 'guru99'라는 이름의 테이블을 만들고, 열 이름은 "Edu"로 지정합니다.
- "put" 명령어를 사용하면 "guru99" 테이블의 "Edu" 열에 "r1" 행에 값을 넣을 수 있습니다.
돈을 받아가세요
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
여기, TIMERANGE, TIMESTAMP, VERSIONS, FILTERS 등의 매개변수를 포함할 수 있습니다. 이 명령을 사용하면 테이블에서 특정 행 또는 셀의 내용을 가져올 수 있습니다. 또한 TIMESTAMP, TIMERANGE, VERSIONS, FILTERS 등의 추가 매개변수를 사용하여 특정 행 또는 셀의 내용을 가져올 수도 있습니다.
아래의 get output 명령은 r1 행과 c1 열의 값을 반환합니다.
예:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
위 스크린샷에 표시된 것처럼, 이 명령어를 사용하면 "guru99" 테이블의 r1행과 c1열의 값이 표시됩니다.
hbase> get 'guru99', 'r1'
이 명령어를 사용하면 "guru99" 테이블의 r1 행 값이 표시됩니다.
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
이 명령어를 사용하면 "guru99" 테이블의 r1 행 값 중 시간 범위 ts1부터 ts2까지의 값이 표시됩니다.
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
이 명령을 사용하면 "guru99" 테이블의 r1 행과 c1, c2, c3 열 패밀리의 값이 표시됩니다.
.
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- 이 명령은 지정된 테이블의 행 또는 열에 있는 셀 값을 삭제합니다.
- 삭제는 삭제된 셀의 좌표와 정확히 일치해야 합니다.
- 스캔 시 셀을 삭제하면 이전 버전의 값이 숨겨집니다.
예시: 아래의 삭제 명령은 guru99 테이블에서 셀 r1과 c1을 제거합니다.
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- 위 실행 명령은 "guru99" 테이블의 c1 컬럼 패밀리에서 r1 행을 삭제합니다.
- 테이블 "guru99"에 g와 같은 테이블 참조가 있다고 가정해 보겠습니다.
- 테이블 참조에 대해서도 다음과 같이 명령을 실행할 수 있습니다. hbase> g.delete 'guru99', 'r1', 'c1'”.
모두 삭제
Syntax: deleteall <'tablename'>, <'rowname'>
- 이 명령은 지정된 행의 모든 셀을 삭제합니다.
- 구문에서 선택적으로 열 이름과 타임스탬프를 정의할 수 있습니다.
예시: 아래의 deleteall 명령은 r1행의 모든 셀을 삭제합니다.
hbase>deleteall 'guru99', 'r1', 'c1'
이렇게 하면 테이블에 있는 모든 행과 열이 삭제됩니다. 필요에 따라 열 이름을 지정할 수도 있습니다.
자르기
Syntax: truncate <tablename>
아래의 truncate 명령은 테이블을 비우면서 유지합니다.ping 그 스키마는 다음과 같습니다:
HBase 테이블을 잘라내면 스키마는 남지만 레코드는 사라집니다. 이 명령은 아래에 나열된 세 가지 기능을 수행합니다.
- 테이블이 이미 존재하는 경우 해당 테이블을 비활성화합니다.
- 테이블이 이미 존재하는 경우 삭제합니다.
- 앞서 언급한 테이블을 다시 생성합니다.
주사
Syntax: scan <'tablename'>, {Optional parameters}
이 명령은 테이블 전체를 스캔하여 테이블 내용을 표시합니다.
- 이 스캔 명령에 몇 가지 선택적 사양을 전달하여 시스템에 있는 테이블에 대한 자세한 정보를 얻을 수 있습니다.
- 스캐너 사양에는 다음 속성 중 하나 이상이 포함될 수 있습니다.
- 이것들은 TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW 및 STOPROW입니다.
scan 'guru99'
스캔 결과는 아래와 같습니다.
위 스크린샷에서:
- 이 화면에는 "guru99" 테이블의 열 이름과 값이 표시됩니다.
- 이는 단일 열 값 c1에 대해 r1, r2, r3의 세 행 값으로 구성됩니다.
- 행과 관련된 값을 표시합니다.
예시: 스캔 명령어의 다양한 사용법:
| Command | 용법 |
|---|---|
| '.META.', {COLUMNS => 'info:regioninfo'} 스캔 | 이 기능은 HBase 테이블에 있는 열과 관련된 모든 메타데이터 정보를 표시합니다. |
| 스캔 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | 이 기능은 guru99 테이블의 내용과 해당 열 패밀리인 c1 및 c2를 표시하며, 값은 10으로 제한됩니다. |
| 스캔 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} | 이 코드는 guru99의 내용을 c1이라는 열 이름과 함께 표시하며, 언급된 시간 범위 속성 값 사이에 있는 값들을 보여줍니다. |
| 스캔 'guru99', {RAW => true, VERSIONS =>10} | 이 명령에서 RAW=> true는 guru99 테이블에 있는 모든 셀 값을 표시하는 것과 같은 고급 기능을 제공합니다. |
Code 예시: 먼저 표를 만들고 표에 값을 입력합니다. 입력 화면은 아래 스크린샷을 참조하세요.
create 'guru99', {NAME=>'e', VERSIONS=>2147483647} put 'guru99', 'r1', 'e:c1', 'value', 10 put 'guru99', 'r1', 'e:c1', 'value', 12 put 'guru99', 'r1', 'e:c1', 'value', 14 delete 'guru99', 'r1', 'e:c1', 11
스캔 명령을 실행하면 다음과 같습니다.
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
아래와 같은 출력이 표시됩니다.
위 스크린샷에 표시된 출력 결과는 다음과 같은 정보를 제공합니다.
- RAW=>true, VERSIONS=>1000 속성을 사용하여 guru99 테이블을 스캔합니다.
- 컬럼 패밀리와 값을 포함하는 행을 표시합니다.
- 세 번째 행에는 해당 열에 있던 삭제된 값이 표시됩니다.
- 해당 프로그램이 표시하는 결과는 무작위이며, 우리가 표에 입력한 값의 순서와 동일할 수 없습니다.
Cluster 복제 명령
- 이 명령어들은 HBase의 클러스터 설정 모드에서 작동합니다.
- 클러스터에 피어를 추가 및 제거하고 복제를 시작 및 중지하려면 일반적으로 다음 명령이 사용됩니다.
| Command | 기능 |
|---|---|
| add_peer | 클러스터에 피어를 추가하여 복제합니다. hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
| 제거_피어 | 정의된 복제 스트림을 중지하고 피어에 대한 모든 메타데이터 정보를 삭제합니다. hbase> 제거_피어 '1' |
| 시작_복제 | 모든 복제 기능을 다시 시작합니다. hbase> start_replication |
| stop_replication | 모든 복제 기능을 중지합니다. hbase>stop_replication |
























