https://whiteman97.tistory.com/204
환경 요약
192.168.56.101 master / 하둡 마스터, Hbase 마스터, 주키퍼
192.168.56.102 slave-1 / 하둡 데이터노드, hregion server, 주키퍼
192.168.56.103 slave-2 / 하둡 데이터노드, hregion server, 주키퍼
하둡 설치 안하신분 위에 가서 설치하고 오세요.
1. HBASE 설치하려면 주키퍼가 설치되어야한다.
주키퍼는 분산 애플리케이션 확녕에서 코디네이션을 위한 오픈소스이다.
카프카, 하둡, HBASE 등 여러 클러스터의 메타 정보를 관리하고 리더 선출을 지원한다.
각 메타정보는 ZNODE를 이용해 관리하게된다.
HBASE를 설치하려면 이 주키퍼라는 오픈소스가 설치되어야한다.
https://dlcdn.apache.org/zookeeper/
여기서 3.5.10 버전을 리눅스 환경에서 WGET으로 다운받는다.
모든 노드 설정은 똑같이 한다. scp로 전달하거나, putty 3개 켜놓고 작업하자
sudo vi /etc/hosts
변경 사항 - 주키퍼 서버 등록
---
192.168.56.101 zookeeper01
192.168.56.102 zookeeper02
192.168.56.103 zookeeper03
---
# 파일 다운
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.5.10/apache-zookeeper-3.5.10-bin.tar.gz
# 압축 해제
tar zxvf apache-zookeeper-3.5.10-bin.tar.gz
# 폴더 이동
cd apache-zookeeper-3.5.10-bin/
# 메타정보 디렉터리 생성
mkdir zookeeper_data
cd zookeeper_data/
# 주키퍼의 고유 ID 생성
echo 1 > myid
cd ..
cd conf/
# 주키퍼 환경 설정
cp zoo_sample.cfg zoo.cfg
변경 사항 - 서버 등록 및 데이터 저장소 설정
---
dataDir=/home/kjh/apache-zookeeper-3.5.10-bin/zookeeper_data
server.1=zookeeper01:2888:3888
server.2=zookeeper02:2888:3888
server.3=zookeeper03:2888:3888
---
vi zoo.cfg
cd ../bin
# 모든 노드에서 시작 명령
./zkServer.sh start
---------------------------------------------------------------------------------------------------------------------
# hbase 설치
wget http://apache.mirror.cdnetworks.com/hbase/2.5.2/hbase-2.5.2-bin.tar.gz
tar xzvf hbase-2.5.2-bin.tar.gz
rm -rf hbase-2.5.2-bin.tar.gz
# .bashrc 환경 변수 설정
export HBASE_REGIONSERVER=/home/kjh/hbase-2.5.2/conf/regionservers
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/home/kjh/hbase-2.5.2
export PATH=$PATH:$HBASE_HOME/bin
export ZOOKEEPER_HOME=/home/kjh/apache-zookeeper-3.5.10-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# hbase-2.5.2/conf
hbase-env.sh
--- 변경 사항 - 자바 홈 등록, 외부 주키퍼 클러스터 사용
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_MANAGES_ZK=true
# regionservers 설정
regionservers 등록
---
zookeeper01
zookeeper02
zookeeper03
---
# hbase-site.xml
hbase 환경 설정
-----
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeepers config zoo.cfg. The port at which the clients will connect.</description>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
-----
다음과 같이 나와야 잘 된 것
http://192.168.56.101:16010/master-status
실행
$HBASE_HOME/bin/start-hbase.sh
예제
hbase shell
create 'Contacts', 'Personal', 'Office'
list
put
put 'Contacts', '1000', 'Personal:Name', 'John Dole'
put 'Contacts', '1000', 'Personal:Phone', '1-425-000-0001'
put 'Contacts', '1000', 'Office:Phone', '1-425-000-0002'
put 'Contacts', '1000', 'Office:Address', '1111 San Gabriel Dr.'
put 'Contacts', '8396', 'Personal:Name', 'Calvin Raji'
put 'Contacts', '8396', 'Personal:Phone', '230-555-0191'
put 'Contacts', '8396', 'Office:Phone', '230-555-0191'
put 'Contacts', '8396', 'Office:Address', '5415 San Gabriel Dr.'
get
hbase는 컬럼 패밀리와 HDFS을 사용하는 분산 환경 NoSQL 데이터베이스이다.
다음에는 정리를 해보자
'데이터베이스' 카테고리의 다른 글
MySQL redo, WAL (0) | 2023.01.12 |
---|---|
hbase와 hbase thrift, happyhbase (0) | 2023.01.04 |
redo, undo (0) | 2022.12.29 |
비관적 락 종류 간단 정리 (0) | 2022.12.20 |
오랜만에 하둡 설치기 (0) | 2022.12.19 |