Zookeeper+kafka 三节点集群部署手册

Zookeeper+kafka 三节点集群部署手册

此处软件版本为: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中单独监听产生
####更新及安装系统软件
yum update -y
yum -y install epel-release make gcc gcc-c++ curl wget git zip unzip xz vim 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

修改server.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

为topic增加副本

bin/kafka-reassign-partitions.sh --zookeeper PORTAL-KAFKA01:2181 --reassignment-json-file  json/partitions-to-move.json -execute

删除topic

bin/kafka-topics.sh --zookeeper PORTAL-KAFKA01:2181 --delete --topic  myTopic

关闭kafka

bin/kafka-server-stop.sh

你可能感兴趣的:(Zookeeper+kafka 三节点集群部署手册)