1. HBase의 데이터 구조 이해하기
HBase는 NoSQL 기반의 분산형 컬럼 저장 데이터베이스로, Key-Value 형태의 데이터를 저장합니다. 기본적인 데이터 구조는 다음과 같습니다.
① 테이블(Table)
- RDBMS와 마찬가지로 테이블을 생성하여 데이터를 저장합니다.
- 단, 스키마가 유연하여 컬럼을 사전에 정의할 필요가 없습니다.
② 행(Row)
- 각 행(Row)은 **Row Key(행 키)**를 기준으로 저장됩니다.
- Row Key는 데이터를 식별하는 고유한 키이며, 사전순 정렬되어 저장됩니다.
③ 컬럼 패밀리(Column Family)
- HBase의 핵심 개념으로, 컬럼(데이터 필드)을 그룹화하는 역할을 합니다.
- 테이블을 만들 때 컬럼 패밀리를 사전에 정의해야 합니다.
④ 컬럼(Column)
- 컬럼 패밀리 내부에서 동적으로 생성되는 Key-Value 형태의 데이터 필드입니다.
- 컬럼 패밀리:컬럼 형식으로 접근합니다.
예: columnfamily1:make
⑤ 타임스탬프(Timestamp)
- HBase는 동일한 Row Key와 Column에도 여러 개의 버전을 저장할 수 있습니다.
- 기본적으로 데이터를 저장하면 타임스탬프가 자동 생성됩니다.
2. HBase 테이블 생성 및 데이터 삽입 테스트
2.1. HBase 시작
start-hbase.sh
hbase shell
- start-hbase.sh: HBase를 시작합니다.
- hbase shell: HBase 명령어를 실행할 수 있는 셸 환경을 엽니다.
2.2. 테이블 생성
create 'test', 'columnfamily1'
test라는 테이블을 생성합니다.
columnfamily1이라는 컬럼 패밀리를 추가합니다.
2.3. 테이블 목록 확인
list
현재 존재하는 테이블 목록을 확인할 수 있습니다.
test 테이블이 표시되어야 합니다.
2.4. 데이터 삽입
put 'test', 'row1', 'columnfamily1:make', '1'
put 'test', 'row1', 'columnfamily1:get', '2'
put 'test', 'row2', 'columnfamily1:get', '2'
각 명령어의 의미
- row1, row2 → 행(Row Key) 생성
- columnfamily1:make, columnfamily1:get → 컬럼 생성
- '1', '2' → 저장할 값
2.5. 데이터 조회
scan 'test'
테이블 전체 데이터를 조회하는 명령어입니다.
- 결과 예시:
ROW COLUMN+CELL
row1 column=columnfamily1:make, timestamp=..., value=1
row1 column=columnfamily1:get, timestamp=..., value=2
row2 column=columnfamily1:get, timestamp=..., value=2
3. HBase 데이터 구조 예시
위에서 실행한 명령어를 HBase 내부 구조로 나타내면 다음과 같습니다.
Row Key | Column Family | Column | Value | Timestamp |
row1 | columnfamily1 | make | 1 | 자동 생성 |
row1 | columnfamily1 | get | 2 | 자동 생성 |
row2 | columnfamily1 | get | 2 | 자동 생성 |
Row Key 기준으로 데이터가 저장되며 정렬됨
컬럼 패밀리 내에서 필요한 컬럼만 동적으로 저장
각 데이터에 타임스탬프가 자동으로 부여됨
4. HBase 설치 및 테이블 생성 요약
단계 | 명령어 | 설명 |
1 | start-hbase.sh | HBase 실행 |
2 | hbase shell | HBase 셸 접속 |
3 | create 'test', 'columnfamily1' | 테이블 생성 |
4 | list | 테이블 목록 조회 |
5 | put 'test', 'row1', 'columnfamily1:make', '1' | 데이터 삽입 |
6 | scan 'test' | 전체 데이터 조회 |
이제 위 과정들을 실행하면 HBase가 정상적으로 설치되었는지 확인할 수 있습니다.

'Backend' 카테고리의 다른 글
Apache Spark 설치 및 HBase 연동하기 (0) | 2025.02.19 |
---|---|
Hadoop 클러스터에 HBase 설치 및 설정 (0) | 2025.02.10 |
Docker를 이용한 Hadoop 클러스터 구축 (0) | 2025.02.07 |