安装依赖
由于Kafka是用Scala语言开发的,运行在JVM上,因此在安装Kafka之前需要先安装JDK。
kafka也依赖zookeeper,所以需要先安装zookeeper
安装zookeeper
wget https:///dist/zookeeper/zookeeper-3.9.0/apache-zookeeper-3.9.0.tar.gz
tar -zxvf apache-zookeeper-3.9.0.tar.gz
cd apache-zookeeper-3.9.0
# 修改配置
cp conf/zoo_sample.cfg conf/zoo.cfg
# 启动zookeeper
bin/zkServer.sh start
bin/zkServer.sh status
bin/zkCli.sh
ls / #查看zk的根目录相关节点
可能遇到的报错
Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPuorumPeerMain
下载安装包
如图,当前最新的 Kafka 版本是 2.6.0,提供了两个二进制压缩包可供下载 。
- katka_2.12 2.6.0.tgz
- katka_2.13-2.6.0.tgz
上面两个文件中的 2.12 /2.13 分别表示编译 Kafka 的 Scala 语言版本,后面的 3.6.1 是 Kafka 的版本 。
解压
tar -zxvf kafka_2.12-3.5.1.tgz
修改配置
vim kafka_2.13-3.5.1/config/server.properties
# 添加监听
advertised.listeners=PLAINTEXT://172.16.12.128:9092
其他相关配置
21 broker.id=0
36 advertised.listeners=PLAINTEXT://172.16.12.128:9092
60 log.dirs=/opt/soft/kafka212/data 消息存放目录
103 log.retention.hours=1680 消息存放时间小时
123 zookeeper.connect=172.16.12.128:2181 连接zookeeper 默认本地
137 delete.topic.enable=true 设置可以对topic删除,默认不能删除
broker.id :配置的是集群环境,要求每台kafka都有唯一的brokerid;
listeners:listeners配置的是kafka的tcp侦听ip地址;
注:listeners监听器千万不能写localhost,否则虽然在本地可以通信,一旦外网通过JavaAPI访问就会出错。
修改日志的位置
log.dirs=/opt/kafka/data
log.dirs :数据存放的目录。
修改Zookeeper
zookeeper.connect=server1:2181
如果是集群配置,修改为:
zookeeper.connect=server1:2181,server2:2181,server3:2181
多个zookeeper通过,分割,比如:erver1:2181,server2:2181即可。
启动
# 启动zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
# 启动kafka
bin/kafka-server-start.sh -daemon config/server.properties
查看端口
测试
创建主题
bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --create --topic test --partitions 3 --config retention.ms=259200000
查看主题
bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list
插入数据
bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic test
查看数据量
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --topic test
消费数据
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
删除主题
bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic test --delete