[Linux] Ubuntu에 HBase 2.5 설치 및 실행 에러(SSH, Java Path) 완벽 해결 가이드
개인 서버(Ubuntu)에 HBase 2.5.x (Standalone 모드)를 설치하면서 겪은 다양한 실행 에러(jps 프로세스 없음, 주키퍼 연결 실패, Java 경로 중복)와 이를 해결한 최종 설정값을 공유합니다.
1. 사전 준비 (Java 설치 확인)
HBase 구동을 위해 JDK 11을 기준으로 설명합니다. 설치된 자바 경로를 먼저 확인합니다.
sudo update-alternatives --config java
# 출력된 경로(예: /usr/lib/jvm/java-11-openjdk-amd64)를 기억해둡니다.
2. HBase 다운로드 및 설치
# 1. 다운로드 (버전은 상황에 맞게 변경)
wget https://archive.apache.org/dist/hbase/2.5.6/hbase-2.5.6-bin.tar.gz
# 2. 압축 해제 및 경로 이동
tar -zxvf hbase-2.5.6-bin.tar.gz
sudo mv hbase-2.5.6 /usr/local/hbase
# 3. 권한 설정 (본인 계정으로 변경 필수!)
sudo chown -R santj5811:santj5811 /usr/local/hbase
3. 환경 설정 (이 부분이 핵심!)
대부분의 실행 오류는 설정 파일에서 발생합니다. 아래 내용을 그대로 적용하면 로컬 환경에서 충돌 없이 실행됩니다.
3-1. hbase-env.sh 설정
/usr/local/hbase/conf/hbase-env.sh 파일을 열고 맨 아래에 다음 내용을 추가합니다.
# [주의] JAVA_HOME 뒤에 /bin/java를 붙이지 마세요! (디렉토리까지만 입력)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
# HBase가 자체 주키퍼를 관리하도록 설정
export HBASE_MANAGES_ZK=true
# Java IPv4 강제 설정 (연결 거부 에러 방지)
export HBASE_OPTS="-Djava.net.preferIPv4Stack=true"
🚨 트러블슈팅 경험: JAVA_HOME 경로 끝에 /bin/java를 포함시키면, 실행 시 /bin/java/bin/java: Not a directory 에러가 발생하며 프로세스가 뜨지 않습니다.
3-2. hbase-site.xml 설정
/usr/local/hbase/conf/hbase-site.xml 파일의 <configuration> 태그 내부를 아래 내용으로 교체합니다.
<configuration>
<!-- 1. Standalone 모드 (SSH 설정 불필요) -->
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<!-- 2. 데이터 저장 경로 -->
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/data</value>
</property>
<!-- 3. 로컬 파일시스템 호환성 문제 해결 (필수) -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- 4. 주키퍼 데이터 경로 지정 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
</configuration>
4. 실행 및 확인
설정이 완료되면 서비스를 시작합니다.
# 실행 스크립트
/usr/local/hbase/bin/start-hbase.sh
정상 구동 확인:
$ jps
17726 HMaster # HMaster가 보여야 성공
18033 Jps
$ /usr/local/hbase/bin/hbase shell
hbase:001:0> status
1 active master, 0 backup masters, 1 servers, 0 dead ...
위와 같이 status 명령어에 Active Master가 잡히면 설치가 성공적으로 완료된 것입니다.
Was this helpful?
0 / 0