본문 바로가기
데이터베이스

오랜만에 하둡 설치기(2) - 주키퍼를 설치하고 HBASE를 얹어보자

by 흰색남자 2022. 12. 30.

https://whiteman97.tistory.com/204

 

오랜만에 하둡 설치기

빅데이터 취업을 위해 오랜만에 하둡을 다시 설치해 보았다. 환경 우분투 20.04 하둡 3.3.1 master : namenode slave-1 : secondary namenode, datanode 1 slave-2 : datanode 2 sudo apt install -y net-tools ssh vim tree openjdk-8-jdk //

whiteman97.tistory.com

 

환경 요약

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/

 

Index of /zookeeper

 

dlcdn.apache.org

여기서 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