Zookeeper+kafka 3 노드 클러스터 배포 안내서
Zookeeper+kafka 3 노드 클러스터 배포 안내서
이 소프트웨어 버전은 jdk-8,zookeeper-3.4.14,kafka-2.3, 네트워크 환경: 아리운 내망 & 외망(인터넷)
서버 이름
kafka 네트워킹 IP:PORT
kafka 외부 네트워크 IP:PORT
zookeeper 네트워킹 IP: PORT
KAFKA01
192.168.1.157:9092
116.151.157.185:19092
192.168.1.157:2181
KAFKA02
192.168.1.158:9092
116.151.157.185:29092
192.168.1.157:2181
KAFKA03
192.168.3.159:9092
116.151.157.185:39092
192.168.1.157:2181
상기 외부 네트워크 주소는 각자의 내부 네트워크 주소를 SLB에서 단독으로 감청하여 #### 업데이트 및 설치 시스템 소프트웨어yumupdate-yyum-y install epel-release make gcc gcc-c+curl wget git zip unzip xzvim perl sysstat lsof lvm2
jdk8 설치
jdk 다운로드
wget http://61.160.245.8:6001/jdk-8u102-linux-x64.tgz
tar zxf jdk-8u102-linux-x64.tgz
압축을 풀고 디렉터리/usr/java/아래로 이동
mv jdk1.8.0_102/ /usr/local/java
JDK 환경 변수 구성
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
hosts 수정
192.168.1.157 KAFKA01 KAFKA01
192.168.1.158 KAFKA02 KAFKA02
192.168.3.159 KAFKA03 KAFKA03
zookeeper 설치
zookeeper 다운로드
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
새 디렉토리 및 설치
mkdir /opt/bigdata
tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/bigdata
프로필 복사
cd /opt/bigdata/zookeeper-3.4.14/
cp conf/zoo_sample.cfg conf/zoo.cfg
프로필 zoo를 수정합니다.cfg는 다음과 같습니다.
dataDir=/opt/bigdata/data/zookeeper/zkdata
dataLogDir=/opt/bigdata/data/zookeeper/zkdatalog
server.1=KAFKA01:2888:3888
server.2=KAFKA02:2888:3888
server.3=KAFKA03:2888:3888
myid 파일 만들기
mkdir -vp /opt/bigdata/data/zookeeper/zkdata
echo x > /opt/bigdata/data/zookeeper/zkdata/myid
참고: x는 호스트의 번호를 나타냅니다. 반복할 수 없습니다.
구성 환경 변수 (호스트마다 구성해야 함)
vim /etc/profile
#set java environment , append
export ZOOKEEPER_HOME=/opt/bigdata/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH
구성 적용
. /etc/profile
서비스 시작
cd /opt/bigdata/zookeeper-3.4.14
bin/zkServer.sh start
상태 보기
bin/zkServer.sh status
주의:zk집단은 일반적으로 하나의leader, 여러 개의follower만 있고 주인은 클라이언트의 읽기와 쓰기 요청에 응답하며 동기화 데이터에서 주인이 끊으면follower에서 투표하여leader를 선출합니다.
클라이언트 연결
zkCli.sh
설치 구성 kafka
스트레스 해소 kafka 다운로드
wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3.0.tgz
tar -zxvf kafka_2.11-2.3.0.tgz
mv kafka_2.11-2.3.0 /opt/kafka
서버를 수정합니다.properties
broker.id=1 ### broker.id , 1 、2、3
delete.topic.enable=true ### , topic,
listeners=PLAINTEXT://kafka IP:PORT ###
advertised.listeners=PLAINTEXT://kafka IP:PORT #
log.dirs=/opt/kafka-logs
zookeeper.connect=KAFKA01:2181,KAFKA02:2181,KAFKA03:2181
# , log.retention.hours=168 :
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
검증
사고방식: 다음과 같은 몇 가지kafka 지령을 제시한다.하나의 topic을 만들고 하나의 노드는 생산자로, 두 노드는 소비자로서 각각 데이터를 수신할 수 있는지를 보고 검증한다.
부팅
cd /opt/kafka
bin/kafka-server-start.sh -daemon config/server.properties &
topic 만들기 및 보기
bin/kafka-topics.sh -list -zookeeper KAFKA01:2181
bin/kafka-topics.sh --create --zookeeper KAFKA01:2181 --replication-factor 1 --partitions 1 --topic myTopic #
bin/kafka-topics.sh --create --zookeeper KAFKA01:2181 --replication-factor 3 --partitions 3 --topic myTopic #
생산자를 개척하다
bin/kafka-console-producer.sh --broker-list KAFKA01:9092 --topic myTopic
소비자를 열다
bin/kafka-console-consumer.sh --bootstrap-server KAFKA01:9092 --topic myTopic --from-beginning
bin/kafka-console-consumer.sh --bootstrap-server KAFKA02:9092 --topic myTopic --from-beginning
bin/kafka-console-consumer.sh --bootstrap-server KAFKA03:9092 --topic myTopic --from-beginning
bin/kafka-console-consumer.sh --bootstrap-server 116.151.157.185:19092 --topic myTopic --from-beginning
추가 kafka 명령
topic 세부 정보 보기
bin/kafka-topics.sh -zookeeper PORTAL-KAFKA02:2181 --describe --topic myTopic
토픽에 대한 던전 추가
bin/kafka-reassign-partitions.sh --zookeeper PORTAL-KAFKA01:2181 --reassignment-json-file json/partitions-to-move.json -execute
토픽 삭제
bin/kafka-topics.sh --zookeeper PORTAL-KAFKA01:2181 --delete --topic myTopic
kafka 닫기
bin/kafka-server-stop.sh
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.