Kafka集群配置通常有三种,最简单的下面的第一种,也是默认的一种:
- 单节点,单Broker
- 单节点,多Broker
- 多节点,多Broker
版本选择:
kafka_2.11-0.11.0.0.tar.gz
zookeeper-3.4.10.tar.gz
可以到kafka官网和zookeeper官网上下载到安装包
1、单节点,单Broker配置
1、安装kafka
单节点,单Broker配置是最基本的用法,可以使用Kafka自带的zookeeper
kafka_2.11-0.11.0.0.tar.gz安装包上传到/opt/package,解压得到/opt/kafka_2.11-0.11.0.0
为了方便目录的管理,把这个目录名称修改一下
mv kafka_2.11-0.11.0.0 kafka_2_11_0_11_0
/opt/kafka_2.11-0.11.0.0
[root@node2 kafka_2_11_0_11_0]# ll
总用量 60
drwxr-xr-x. 3 root root 4096 8月 19 08:20 bin
drwxr-xr-x. 2 root root 4096 8月 19 08:20 config
drwxr-xr-x. 2 root root 4096 8月 19 08:20 libs
-rw-r--r--. 1 root root 28824 8月 19 08:20 LICENSE
drwxr-xr-x. 2 root root 4096 8月 20 09:02 logs
-rw-r--r--. 1 root root 336 8月 19 08:20 NOTICE
drwxr-xr-x. 2 root root 4096 8月 19 08:19 site-docs
[root@node2 kafka_2.11-0.11.0.0]#
我们需要在这个目录下创建kafka和自带的zookeeper产生的数据文件的目录
[root@node2 kafka_2_11_0_11_0]# mkdir data
[root@node2 kafka_2_11_0_11_0]# mkdir data/kafka
[root@node2 kafka_2_11_0_11_0]# mkdir data/zk
完整的路径是这样:
/opt/kafka_2_11_0_11_0/data/kafka
/opt/kafka_2_11_0_11_0/data/zk
2、配置kafka和zookeeper
首先进入kafka的config文件目录
[root@node2 config]# ll
总用量 64
-rw-r--r--. 1 root root 906 8月 19 08:20 connect-console-sink.properties
-rw-r--r--. 1 root root 909 8月 19 08:20 connect-console-source.properties
-rw-r--r--. 1 root root 5807 8月 19 08:20 connect-distributed.properties
-rw-r--r--. 1 root root 883 8月 19 08:20 connect-file-sink.properties
-rw-r--r--. 1 root root 881 8月 19 08:20 connect-file-source.properties
-rw-r--r--. 1 root root 1111 8月 19 08:20 connect-log4j.properties
-rw-r--r--. 1 root root 2730 8月 19 08:20 connect-standalone.properties
-rw-r--r--. 1 root root 1199 8月 19 08:20 consumer.properties
-rw-r--r--. 1 root root 4696 8月 19 08:20 log4j.properties
-rw-r--r--. 1 root root 1900 8月 19 08:20 producer.properties
-rw-r--r--. 1 root root 7135 8月 19 08:20 server.properties
-rw-r--r--. 1 root root 1032 8月 19 08:20 tools-log4j.properties
-rw-r--r--. 1 root root 1023 8月 19 08:20 zookeeper.properties
有两个重要的文件需要配置:
分别是server.properties、zookeeper.properties
vi zookeeper.properties
#zookeeper产生的数据文件保存的路径
dataDir=/opt/kafka_2_11_0_11_0/data/zk
其他参数保持不变,然后保存退出
vi server.properties
#允许立刻删除TOPIC
delete.topic.enable=true
#kafka产生的数据文件存放目录
log.dirs=/opt/kafka_2_11_0_11_0/kafkalogs
#当前主机名
host.name=192.168.120.12
zookeeper.connect=192.168.120.12:2181
listeners=PLAINTEXT://192.168.120.12:9092
其他参数保持不变,然后保存退出
这里的zookeeper.connect参数最好用本机IP地址,而不是用localhost, listeners参数后面的也需要添加本机IP,
这里为何要修改zk和kafka的保存数据文件的默认路径呢,因为默认的路径是/tmp开头的路径,这个路径在服务启动启动后就被清空了,它是个临时目录。
3、启动zookeeper
nohup /opt/kafka_2_11_0_11_0/bin/zookeeper-server-start.sh /opt/kafka_2_11_0_11_0/config/zookeeper.properties > /opt/kafka_2_11_0_11_0/logs/kafka-zk.log 2>&1 &
这个启动命令里面指定了启动的zookeeper-server-start.sh和对应的配置文件,以及产生的日志文件的路径
为了方便以后使用,可以把这个放在一个启动脚本里面,比如start_zk.sh
[root@node2 bin]# ./start_zk.sh
[root@node2 bin]# jps
13645 QuorumPeerMain
13887 Jps
[root@node2 bin]# ll /opt/kafka_2_11_0_11_0/logs/
总用量 24
-rw-r--r--. 1 root root 162 11月 9 12:43 controller.log
-rw-r--r--. 1 root root 0 11月 9 12:43 kafka-autho