Hadoop 환경에서 HBase 분산 설정 가이드

사전 준비: Hadoop 클러스터 실행

HBase를 구동하기 전에 Hadoop이 정상적으로 작동 중인지 확인합니다.

$ start-dfs.sh
$ start-yarn.sh

HBase 버전 호환성 확인

Hadoop과 HBase 간 버전 호환성은 매우 중요합니다. 현재 Hadoop 버전을 먼저 확인하세요.

$ hadoop version

확인한 버전에 맞는 HBase를 Tsinghua 미러에서 다운로드합니다. 안정적인 릴리즈를 권장합니다.

압축 해제 및 경로 설정

다운로드한 패키지를 서버 디렉토리로 이동 후 설치합니다.

$ tar -zxvf hbase-2.4.18-bin.tar.gz -C /export/server/
$ ln -s /export/server/hbase-2.4.18 /export/server/hbase

시스템 환경변수에 HBase 실행 경로를 추가합니다.

$ sudo vi /etc/profile

# 파일 하단에 추가
export HBASE_HOME=/export/server/hbase
export PATH=${PATH}:${HBASE_HOME}/bin

$ source /etc/profile

설치 확인:

$ hbase version

핵심 설정 파일 구성

1. hbase-env.sh 설정

$ vi ${HBASE_HOME}/conf/hbase-env.sh

다음 내용을 추가합니다:

export JAVA_HOME=/export/server/jdk
export HBASE_CLASSPATH=${HBASE_HOME}/conf
export HBASE_MANAGES_ZK=true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

마지막 항목은 Hadoop 클래스패치 충돌 방지를 위해 필수입니다.

2. hbase-site.xml 설정

$ vi ${HBASE_HOME}/conf/hbase-site.xml

다음 속성을 <configuration> 태그 내부에 추가합니다:

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://namenode:9000/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>localhost</value>
</property>

중요: hdfs://namenode:9000 부분은 Hadoop의 core-site.xml에 정의된 fs.defaultFS 값과 일치해야 합니다. 실제 네임노드 주소로 변경하세요.

서비스 시작 및 검증

HBase 데몬을 기동합니다:

$ ${HBASE_HOME}/bin/start-hbase.sh

프로세스 확인:

$ jps

정상 실행 시 HMaster, HRegionServer, HQuorumPeer 프로세스가 표시됩니다.

셸 접속 및 기본 명령

$ hbase shell

일반적인 문제 해결

SLF4J 바인딩 충돌

다음과 같은 경고가 발생하면:

SLF4J: Found multiple bindings...

Hadoop 또는 HBase 중 한쪽의 SLF4J JAR를 제거합니다:

$ rm ${HBASE_HOME}/lib/client-facing-thirdparty/slf4j-reload4j-*.jar

Hadoop 세이프모드

시작 실패 시 세이프모드 상태를 확인하세요:

$ hdfs dfsadmin -safemode get

활성화된 경우 강제 종료:

$ hdfs dfsadmin -safemode forceExit

Hadoop과 HBase를 순차적으로 재시작 후 셸에서 테이블 생성 테스트를 수행하세요.

태그: HBase hadoop Distributed Database ZooKeeper Big Data

9월 16일 00:34에 게시됨