환경
가상머신 : Virtualbox 6.2.12
운영체제 : CentOS-7-x86_64-Everything-2003.ios
3대설치 각 host는 hadoop01, hadoop02, hadoop03으로 지정
1. virtual machine에 centOS-7을 올리고 설치
2. Java설치
카프카를 설치하기 전 주키퍼(zookeeper)를 설치해야 하는데, 주키퍼는 자바(java)애플리케이션이기에 먼저 설치해준다.
$ yum -y install java-1.8.0-openjdb
3. 호스트 이름변경
vi /etc/hosts를 열어
111.11.11.1111 hadoop01
222.22.22.2222 hadoop02
333.33.33.3333 hadoop03
을 추가한다. ( 3대 서버 모두 )
4. Zookeeper설치
설치와 환경설정 모두 3대 서버 동일하게 진행한다. 주키퍼는 과반수투표 프로세스 때문에 3대 5대 7대와 같이 홀수로 구성해야 한다.
설치할 path로 이동한다.
$cd /usr/local
$wget http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
$tar zxf zookeeper-3.4.14.tar.gz
심볼릭링크생성
ln -s zookeeper-3.4.14 zookeeper
설치경로와른 다른 별도의 주키퍼 데이터디렉토리를 추가한다. 여기엔 주키퍼지노드 복사본인 스냅샷과 트랜잭션 로그들이 저장된다.
mkdir -p /data
myid라는 파일을 만들고 내용을 1이라고 한다.
echo 1> /data/myid //host hadoop01
echo 2> /data/myid //host hadoop02
echo 3> /data/myid //host hadoop03
5. Zookeeper환경설정
$vi /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000 : 주키퍼가 사용하는 시간에 대한 기본단위(밀리초)
initLimit=10 : 팔로워가 리더와 초기에 연결하는 시간에 대한 타임아웃 tick의 수
syncLimit=5 : 팔로워가 리더와 동기화하는 시간에 대한 타임아웃 tick의 수 (주키퍼에 저장된 데이터가 크면 수를 늘려야 함)
dataDir : 주기퍼의 트랜잭션 로그와 스냅샷이 저장되는 데이터 저장경로
clientPort : 주키퍼 사용 TCP포트
maxClientCnsxns=60 : 하나의 클라이언트에서 동시접속 수 제한. 0이면 unlimit로 설정
autopurge.purgeInterval=1 : 스냅샷 및 해당 트랜잭셕로그 자동 삭제 주기. 양수(1이상)로 설정하면 ON, 0은 OFF
server.N : 주기퍼 앙상플 구성을 위한 설정
기본설정은 수정하지 않고
dataDir=/data
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
만 추가한다.
2888, 3888은 기본 포트이며 앙상블 내 노드끼리 연결(2888)하고, 리더선출(3888)에 사용한다.
6. Zookeeper 실행/중지
$ /usr/local/zookeeper/bin/zkServer.sh start //실행
Using config: /usr/local/zookeeper/bin../conf/zoo.cfg
Starting zookeeper ... STARTED
$ /usr/local/zookeeper.bin/zkServer.sh stop //중지
7. Kafka 설치
카프카 클러스터의 브로커 수를 3대로 구성
카프카 또한 자바 애플리케이션으로 자바가 설치되어야 함.
스칼라버전 2.13버전인 kafka2.6으로 다운로드.
$ cd /usrl/local
$ wget http://mirror.navercorp.com/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz
$ tar zxf kafka_2.13-2.6.0.tgz
심볼릭 링크
ln -s kafka_2.13-2.6.0
8. 카프카 환경설정
- 서버별 브로커 아이디
- 카프카 저장 디렉토리
- 주키퍼정보
서버별 브로커 아이디
호스트 브로커ID
hadoop01 broker.id=1
hadoop02 broker.id=2
kadoop03 broker.id=3
카프카 저장디렉토리
카프카는 컨슈머가 메세지 소비 후에도 저장된 데이터를 임시로 보관할 수 있다.
이 데이터들은 디스크마다 별도로 저장할 수 있는데 예제에서는 디렉토리로 대체한다.
$ mkdir -p /data1
$ mkdir -p /data2
주키퍼정보
zookeeper.connect=주키퍼호스트:주키퍼포트/지노드네임
zookeeper.connect=172.30.1.17:2181,172.30.1.59:2181,172.30.1.40:2181/hadoop-kafka
server.properties 파일을 열어 3대 모두 카프카 환경설정을 해준다.
$ vi /usr/local/kafka/config/server.properties
broker.id = 1 / 2 / 3 각 서버별로 다르게
log.dirs=/data1,/data2
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/hadoop-kafka
9. 카프카 실행
--daemon 옵션을 주어 백그라운드로 실행한다.
$/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
중지하려면 다음 명령어를 입력한다.
$/usr/local/kafka/bin/kafka-server-stop.sh
10. 카프카 정보 확인
주키퍼에 접속하여 지노드를 확인해 카프카가 잘 작동하는지 확인해본다.
$/usr/local/zookeeper/bin/zkCli.sh
zk: localhost:2181(CONNECTED) 0] ls /
[ zookeeper, hadoop-kafka]
11. 카프카 로그 확인
$cat /usr/local/kafka/logs/server.log
댓글 없음:
댓글 쓰기