我这里用的是kafka自带的zookeeper,没有单独搞。
配置过程比较简单,下载kafka压缩包,解压,我是建立了一个kafka文件夹。
解压后的目录:
接下来直接去配置环境变量:
现在我找到了另一种配置环境变量的方式:https://blog.csdn.net/qq_39314099/article/details/103306898
配置kafka环境变量:
bash_profile文件:
bashrc文件:
然后都source下。
接下来配置一下配置文件。先配置zookeeper:
进入kafka下的config目录,找到zookeeper.properties,编辑:
dataDir代表zk存放数据的目录,我新建了一个文件夹;
dataLogDir代表zk的日志目录,我自己新建的文件夹;
tickTime代表发送心跳时间间隔,单位毫秒;
initLimit代表最长能忍受多少个心跳时间间隔数;
syncLimit代表leader和follower之间发消息,请求和应答时间长度。
这样Zk就配置好了。
下一步配置kafka配置文件,只是做部署过程记录,就只做一个单点。
Config目录下的server.properties:
这两个写成自己的ip。
日志目录,自定义。
在zookeeper这里填好zk地址。
配置到这里就可以了。
启动zk:
用nohup 加command 加 &符号启动。可以查看nohup.out日志,如此启动成功。
nohup zookeeper-server-start.sh ./config/zookeeper.properties &
上面的命令会在当前目录生成一个nohup.out文件,作为日志文件,但是zk有自己的日志文件,这样显得有点多余,可以用下面的命令不生成这个nohup.out文件:
nohup zookeeper-server-start.sh ./config/zookeeper.properties >/dev/null 2>&1 &
可以查看日志文件,也可以用其他命令查看,比如监听端口:
关闭zookeeper:
zookeeper-server-stop.sh
同样的命令形式去启动kafka:
nohup kafka-server-start.sh ./config/server.properties >/dev/null 2>&1 &
可以看到nohup.out输出的日志,启动成功。
查看端口:
关闭kafka:
kafka-server-stop.sh
测试下,创建一个topic:
bin/kafka-topics.sh --create --zookeeper 192.168.179.128:2181 --replication-factor 1 --partitions 3 --topic TEST-TOPIC
可以看到,nohup日志已经打印出来了。日志里显示已经创建了topic。
接下里调用命令来查看下:
./bin/kafka-topics.sh --list --zookeeper localhost:2181
创建的topic都在这里了。
后记:
在上面的操作完成后。kafka和zk就基本配置完成了。但是我忽略了一个问题。那就是端口问题。现在如果直接去ping ip + 端口是ping不通的。当然如果你的防火墙根本没开就不用担心这个问题了。
针对这问题需要在防火墙开放端口:
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=9092/tcp --permanent
添加完重载下防火墙即可。
这时候应该就没有问题了。
如果再程序中添加了topic,想查看,可以在xshell中执行命令查看:
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.179.128:9092 --topic topicname--from-beginning
这里有一点需要注意的就是如果你的server的地址ip写的和配置文件里配的不能对应的话,会报错:
比如,我配置文件配置的是ip,但是命令写的确实localhost,报错如下
(localhost/127.0.0.1:9092) could not be established。这时候一般将localhost改为ip即可正常查询。