首先发一下kafka安装包
链接:https://pan.baidu.com/s/1zPuA1kdBYp8AdpXwRGjzcw
提取码:sv0v
kafka的安装
- 上传压缩包到虚拟机中
- 将压缩文件移动到/root/目录:
- mv kafka_2.12-1.1.0.tgz /root/kafka_2.12-1.1.0.tgz
- 进入 /root/目录:cd root
- 解压:tar zxvf kafka_2.12-1.1.0.tgz
- 重命名:mv kafka_2.12-1.1.0 kafka
- 编辑 server.properties 文件: vi /root/kafka/config/server.properties
- 在 server.properties 中加入以下代码:listeners=PLAINTEXT://192.168.141.1:9092(一定要用绝对地址)
- 配置对外开放端口: iptables -I INPUT 1 -p tcp --dport 9092 -j ACCEPT(用阿里云的需要这样配置)
kafka的使用
- 启动服务
(运行 kafka 需要使用 Zookeeper,所以需要先启动一个 Zookeeper 服务器,可以使用 kafka 自带打包和配置好
的 Zookeeper)
- 进入 kafka 目录:cd /root/kafka
- 启动 Zookeeper 服务器:bin/zookeeper-server-start.sh config/zookeeper.properties
- 打开一个新窗口
- 进入 /root/kafka/目录 cd /root/kafka (启动 kafka、zookeeper 服务都要在此目录)
- 启动 kafka 服务: bin/kafka-server-start.sh config/server.properties &
- 打开一个新窗口,进入/root/kafka 目录: cd /root/kafka
- 创建一个名为“test”的 Topic,只有一个分区和一个备份:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
test
通过以下命令查看已创建的 topic 信息:
bin/kafka-topics.sh --list --zookeeper localhost:2181test
- 发送消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 消费消息:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
报错
- kafka-run-class.sh:line 271:/usr/local/java/jdk/bin/java
没有安装jdk,或者jdk环境配置错误
- kafka-run-class.sh:line 252 ,Unrecognized VM option 'PrintGCDateStamps'
启动PrintGCDateStamps异常
解决:
方法1:修改kafka-run-class.sh文件,将PrintGCDateStamps相关注释(这个我尝试了,但是没有成功)
方法2:(这个可以用)
将
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"/\1/p')
修改为
目录
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*/\1/p')
然后 chmod +x kafka-run-class.sh 添加执行权限