下载地址:http://kafka.apache.org/downloads
#jdk安装
略...
#解压kafka 到 /usr/local/kafka中
#设置配置文件/etc/profile文件,增加kafka的路径
$ vim /etc/profile
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
#配置文件立即生效
$ source /etc/profile
#检查kafka环境是否生效
$ kafka-server-stop.sh
No kafka server to stop
#启动zookeeper(这里使用kafka自带的zookeeper,也可以独立部署zookeeper使用)
使用默认的zookeeper.properties配置文件
$ zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
#启动kafka
使用默认的server.properties配置文件
$ kafka-server-start.sh /usr/local/kafka/config/server.properties
#创建一个名字为test的topic
2181为zookeeper的默认端口
$ kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test"
#创建一个consumer接受消息
9092为kafka默认端口
$ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
#创建一个producer,并输入信息
$ kafka-console-producer.sh --broker-list localhost:9092 --topic test
>hello world
#在consumer进程中可以看到对应的输入信息
hello world
#查看kafka当前的topic列表
$ kafka-topics.sh --list --zookeeper localhost:2181
#使用参数--from-beginning,让consumer从第一个开始接受消息
$ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
问题1:
[2018-04-23 06:04:29,542] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
2018-04-23 06:04:27,333] WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
解决:
先启动zookeeper,然后再启动kafka
问题2:
/usr/local/kafka/bin/kafka-run-class.sh: line 271: exec: java: cannot execute: Is a directory
解决:安装 jdk