kafka的安装:
- 下载 kafka的安装文件。
- linux下解压:tar -zxvf ./kafka_2.11-0.10.0.1.tgz,将集成的几台机器都copy上已解压文件。
-
分别 配置kafka解压文件夹下的/config/server.properties文件的几个主要配置:
broker.id(标示当前server在集群中的id,从0开始),port,host.name(当前的server host name),zookeeper.connect(连接的zookeeper集群),log.dirs(log的存储目录,记得对应的去建立这个目录)等。
注意:broker.id不能重复,并且可以是从0开始。
启动kafka及相关操作
在启动kafka的时候需要先启动zookeeper服务,虽然kafka的包里面已经包含了zookeeper但是这里还是建议单独安装zookeeper集群这样方便其他应用公用zookeeper应用。
- 启动:nohup ./bin/kafka-server-start.sh ./config/server.properties >/dev/null 2>&1 &
- 创建topic:./bin/kafka-topics.sh --create --zookeeper zk-1:2181,zk-2:2181,zk-3:2181 --replication 2 --partitions 2 --topic test
- 查看topic: ./bin/kafka-topics.sh --list --zookeeper zk-1:2181,zk-2:2181,zk-3:2181
- 插入数据:./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 获取数据: ./bin/kafka-console-consumer.sh --zookeeper zk-1:2181,zk-2:2181,zk-3:2181 --topic test --from-beginning
- 获取topic详情:./bin/kafka-topics.sh --describe --zookeeper zk-1:2181,zk-2:2181,zk-3:2181 --topic test
- 删除:./bin/kafka-topics.sh --zookeeper zk-1:2181,zk-2:2181,zk-3:2181 --topic test --delete
删除的时候容易出现如下信息:
$ ./bin/kafka-topics.sh --zookeeper zk-1:2181,zk-2:2181,zk-3:2181 --topic test --delete
Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
$ ./bin/kafka-topics.sh --list --zookeeper zk-1:2181,zk-2:2181,zk-3:2181
test - marked for deletion
并没有真正删除,如果要真正删除配置 delete.topic.enable=true重启kafka
$ ./bin/kafka-topics.sh --delete --topic test --zookeeper zk-1:2181,zk-2:2181,zk-3:2181
Topic test is already marked for deletion.
$ ./bin/kafka-topics.sh --list --zookeeper zk-1:2181,zk-2:2181,zk-3:2181
test - marked for deletion
此时在删除kafka的./config/server.properties中设置的log.dirs路径下删除对应的test-* 文件即可:
kafka可视化监控(KafkaOffsetMonitor)的搭建
- 下载 KafkaOffsetMonitor 的安装文件。
- 在linux上创建路径kafka-console,将下载的jar包拷贝过去。
- 创建可执行文件start.sh,里面的内容如下:
<pre>#!/bin/sh
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk zk-1:2181,zk-2:2181,zk-3:2181 --port 8089 --refresh 5.minutes --retain 1.day 1>logs/stdout.log 2>logs/stderr.log &</pre> - 给start.sh文件赋权限 $ chmod 775 ./start.sh。
- 启动服务: $ ./start.sh。
在浏览器上输入:http://IP:8089 得到如下图展示信息: