HBase 로컬에서 연습을 위한 docker 설치

로컬에서 연습을 위한 docker 설치에 대해서 소개한다.

Hbase Docker에 설치

아래 도커 이미지를 이용해서 도커 환경에 HBase를 설치해 보도록 하겠다.

HBase Docker 실행 명령어 다운로드

아래 github에서 HBase Docker 실행 명령어 다운로드(clone) 받는다.

git clone git@github.com:dajobe/hbase-docker.git

HBase Docker 실행

docker가 구동된 상태에, 아래 명령어를 그대로 실행 시킨다.

./start-hbase.sh

컨테이너를 시작하고 검사하여 모든 로컬 API 포트와 웹 UI를 결정하고 아직 존재하지 않는 경우 컨테이너 IP에 대한 별칭을 추가하기 위해 /etc/hosts를 편집하도록 제안하는 start-hbase.sh 스크립트를 사용하는 것이 좋다.

컨테이너를 시작하여, 모든 로컬 API 포트와 웹 UI를 결정하고 상요 존재하지 않는 경우 컨테이너 IP에 대한 별칭을 추가하기 위해 /etc/hosts를 편집하도록 제안하는 start-hbase.sh 스크립트를 사용하는 것이 좋다.

% ./start-hbase.sh
start-hbase.sh: Starting HBase container
Error: No such container: hbase-docker
Unable to find image 'dajobe/hbase:latest' locally
latest: Pulling from dajobe/hbase
6cf436f81810: Pulling fs layer

... 중간 생략 ...

159beed970fa: Pull complete
Digest: sha256:daa36a6d90b118ced866b6c76fcd918e7da73302b0e4971f506f0f61f645a9fe
Status: Downloaded newer image for dajobe/hbase:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
start-hbase.sh: Container has ID 3804d552250334cc850189e076b77cb0d3066850cef332bec7a125dc29228361
./start-hbase.sh: line 32: python: command not found

여기 컨테이너 ID는 3804d552250334cc850189e076b77cb0d3066850cef332bec7a125dc29228361이다. Shell 실행시 필요하니 기록해 두자.

위 명령어를 실행 시키면, 실행 시킨 현재 경로에 data가 생성이 되고, port가 열리면서 HBase가 실행될 것이다.

수동을 실행 시키는 방법

docker run --name=hbase-docker \
  -h hbase-docker \
  -p 9095:9095 \
  -p 8085:8085 \
  -p 16010:16010  \
  -v $PWD/data:/data \
  -d dajobe/hbase

Hbase Shell 실행

다음으로 도커 이미지를 이용해서 HBase에 접속할 수 있는 Shell 컨멘드를 실행해 보도로 하겠다.

위에서 기록한 컨테이너 ID를 $id에 넣고 실행한다.

docker run --rm -it --link $id:hbase-docker dajobe/hbase hbase shell

macOS Apple Chip(M1, M2)인 경우에는 아래와 같이 에러가 날 수 있다.

% docker run --rm -it --link 3804d552250334cc850189e076b77cb0d3066850cef332bec7a125dc29228361:hbase-docker dajobe/hbase hbase shell
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

그러면, 이미 실행된 docker는 삭제하고, --platform linux/amd64 옵션을 넣고, 다시 실행 시키면 동작을 할 것이다.

% docker run --rm -it --platform linux/amd64 --link 3804d552250334cc850189e076b77cb0d3066850cef332bec7a125dc29228361:hbase-docker dajobe/hbase hbase shell

2023-06-16 09:38:17,680 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.1.2, r1dfc418f77801fbfb59a125756891b9100c1fc6d, Sun Dec 30 21:45:09 PST 2018
Took 0.0480 seconds
hbase(main):001:0>

shell에서 빠져나오는 명령은 quit이다.

hbase(main):005:0> quit

Command 사용 방법은 다음 페이지에서 설명하도록 하겠습니다.




최종 수정 : 2023-06-16