今天来玩玩kafka, 有点意思。
1. 下载二进制的kafka安装包, 地址:http://kafka.apache.org/downloads.html, 以kafka_2.10-0.9.0.0.tgz为例吧, 下载后, 如下:
ubuntu@VM-0-13-ubuntu:~$ ls
kafka_2.10-0.9.0.0.tgz share
2. 解压并进入kafka目录, 如下:
tar -xzvf kafka_2.10-0.9.0.0.tgz
cd kafka_2.10-0.9.0.0
3. 启动Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &
a. 可能会遇到没有jdk的情况, 请安装, sudo apt-get install openjdk-8-jdk
b. 可能会遇到内存不足的情况, 请修改配置, 见文后
4. 启动Kafka:
bin/kafka-server-start.sh config/server.properties &
可能会遇到内存不足的情况, 请修改配置, 见文后
5. 运行 producer:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
6 运行 consumer:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
在producer中写信息, 从consumer中可以看到结果, 如下:
一个简单的kafka搭建, 遇到好几个坑:
1. Exception in thread “main" java.lang.UnsupportedClassVersionError
原因:JDK版本兼容问题, 那就升级吧
办法:http://blog.youkuaiyun.com/guoqianqian5812/article/details/52649191 (感谢原作者)
2. 内存memory的insufficient问题, 或者heap问题, 总之就是内存问题。
原因: 机器的内存不够, 需要改配置
办法: 改配置为512M或者256M
zookeeper和 kafka都可能遇到这个问题, 他们的文件分别是:zookeeper-server-start.sh和kafka-server-start.sh, 下面仅以kafka的kafka-server-start.sh为例:
ubuntu@VM-0-13-ubuntu:~/kafka_2.10-0.9.0.0$ cat bin/kafka-server-start.sh | grep heap -i
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"
可能还有其他坑, 一个个灭之。