本文基于kafka 0.8.1。
准备工作
- 安装java
- 安装zookeeper(自行google)
下载与安装
下载地址
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
安装与启动
1 2
| $ tar -xzf kafka_2.10-0.8.1.1.tgz $ cd kafka_2.10-0.8.1.1.tgz
|
- 配置
进入kafka安装目录编辑server配置文件
1
| $ vim config/server.properties
|
修改以下配置:
1 2
| port=9092 zookeeper.connect=yourIP:2181
|
1
| $ nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
|
1
| $ bin/kafka-server-start.sh config/server.properties
|
如果报错
1 2
| Unrecognized VM option '+UseCompressedOops' Could not create the Java virtual machine.
|
这是因为kafka用了很多用来优化运行的jvm参数,而你安装的 jdk所带的jvm不一定支持这些参数,比如: -XX:+UseCompressedOops ,在bin/kafka-run-class.sh中移除相关参数即可。
如果报错
1
| SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
|
下载slf4j http://www.slf4j.org/dist/slf4j-1.7.6.zip
解压
把slf4j-nop-1.7.6.jar 包复制到kafka libs目录下面
1 2
| $ cd slf4j-1.7.6 $ cp slf4j-nop-1.7.6.jar your kafka path/libs/
|
1
| $ bin/kafka-topics.sh --list --zookeeper localhost:2181
|
显示 test
- 在console模式下启动一个producer,发送消息
1
| $ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
|
键入信息,比如
- 在console模式下启动一个consumer,接收信息
配置3个broker节点的kafka集群
- 在kafka的config目录下配置多个server.properties
1 2
| $ cp config/server.properties config/server-1.properties $ cp config/server.properties config/server-2.properties
|
1 2 3 4
| config/server-1.properties: broker.id=1 port=9093 log.dir=/tmp/kafka-logs-1
|
1 2 3 4
| config/server-2.properties: broker.id=2 port=9094 log.dir=/tmp/kafka-logs-2
|
1 2
| $ nohup bin/kafka-server-start.sh config/server-1.properties & $ nohup bin/kafka-server-start.sh config/server-2.properties &
|
查看topic时
1
| bin/kafka-topics.sh --list --zookeeper localhost:2181
|
可以看到已经创建的两个topic
启动producer
1
| $ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic 3-broker-test
|
输入信息:
1 2 3
| hello hello world hello gay
|
启动consumer
收到信息
1 2 3
| hello hello world hello gay
|
安装配置成功。