Kafka的安装和验证

生产环境要用到kafka,记录一下安装过程,其实最重要的不是安装,而是使用。

时间节点是2022年7月10日,zookeeper的版本是3.4.14:

1wget https://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.14.tar.gz

kafka的版本是3.2,注意前面的2.13是scala的版本

1wget http://archive.apache.org/dist/kafka/3.2.0/kafka_2.13-3.2.0.tgz

软件都下载好以后,找三台服务器,软件都放到 /usr/local 路径下:

服务器的ip是:

1172.18.31.50
2172.18.31.51
3172.18.31.52

移动软件:

1tar zxvf zookeeper-3.4.14.tar.gz
2mv apache-zookeeper-3.6.3-bin /usr/local
3
4tar zxvf kafka_2.13-3.2.0.tgz
5mv kafka_2.13-3.2.0 /usr/local

然后得装 java 了,centos 版本

1yum -y install epel-release
2yum -y install java-11-openjdk-devel

首先去编辑zookeeper的配置文件,然后启动

1cp /usr/local/apache-zookeeper-3.6.3-bin/conf/zoo_sample.cfg /usr/local/apache-zookeeper-3.6.3-bin/conf/zoo.cfg

编辑zoo.cfg,增加几行

1dataDir=/data/zookeeper
2
3metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
4metricsProvider.httpPort=7000
5metricsProvider.exportJvmInfo=true
6
7server.0=172.18.31.50:20881:30881
8server.1=172.18.31.51:20881:30881
9server.2=172.18.31.52:20881:30881

注意上面,我们的数据目录是在/data/zookeeper,所以要先建立好目录结构

然后有三台服务器么,把各自的id放到文件中,然后20881是三台服务器之间的通讯端口,30881是选举端口

1mkdir /data/zookeeper -p
2echo 0 >/data/zookeeper/myid

三台服务器分别启动

1/usr/local/apache-zookeeper-3.6.3-bin/bin/zkServer.sh start

验证一下

1/usr/local/apache-zookeeper-3.6.3-bin/bin/zkCli.sh
2
3[zk: localhost:2181(CONNECTED) 1] ls /
4[admin, brokers, cluster, config, consumers, controller, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]

看看 / 下有东西就行了,上面是已经装好了 kafka 和 cruisecontrol的情形,东西就比较多了

然后装 kafka,先修改配置文件

1vi /usr/local/kafka_2.13-3.2.0/config/server.properties
2
3#需要修改的地方
4
5broker.id=0
6log.dirs=/data/kafka
7zookeeper.connect=172.18.31.50:2181,172.18.31.51:2181,172.18.31.52:2181

然后启动就可以了

1/usr/local/kafka_2.13-3.2.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.13-3.2.0/config/server.properties

验证一下:

 1# 新版的 kafka-topics.sh 命令已经变了
 2
 3cd /usr/local/kafka_2.13-3.2.0/bin
 4
 5# bootstrap-server 写一个就好,我们建立了一个 topic ,叫做 swimmingpool
 6
 7./kafka-topics.sh --create --bootstrap-server 172.18.31.50:9092 --replication-factor 3 --partitions 3 --topic swimmingpool
 8
 9# 看看细节
10
11./kafka-topics.sh --describe --bootstrap-server 172.18.31.50:9092 --topic swimmingpool 
12Topic: swimmingpool     TopicId: gOLXSh5NQPKMAwEroi_HcQ PartitionCount: 3       ReplicationFactor: 3    Configs: segment.bytes=1073741824
13        Topic: swimmingpool     Partition: 0    Leader: 2       Replicas: 0,2,1 Isr: 2,1,0
14        Topic: swimmingpool     Partition: 1    Leader: 2       Replicas: 2,1,0 Isr: 2,0,1
15        Topic: swimmingpool     Partition: 2    Leader: 2       Replicas: 1,0,2 Isr: 2,0,1
16        
17
18# 生产一些消息,ctrl+c 断出
19
20./kafka-console-producer.sh --bootstrap-server 172.18.31.50:9092 --topic swimmingpool
21
22>i am ok
23>i am fine
24>i am good
25
26# 消费这些消息,同样用 ctrl+c 断出,注意看,消息是倒序的
27
28./kafka-consoconsumer.sh --bootstrap-server 172.18.31.50:9092 --topic swimmingpool --from-beginning
29i am good
30i am fine
31i am ok

这样就装好了,但是安装只是第一步,重要的是 topic 的 reblance 以及 partion 的重新分布


Python下Django环境的准备
L2TP VPN在CentOS7系统下的搭建
comments powered by Disqus