Ubuntu16.04+Kafka1.0.0
1.下载kafka_2.11-1.0.0.tgz
http://kafka.apache.org/downloads
2.解压到/usr/local/kafka中
3.设置配置文件/etc/profile文件,增加kafka的路径
①vi /etc/profile
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
②让配置文件立即生效
source /etc/profile
4.检查kafka环境是否生效
kafka-server-stop.sh
显示
No kafka server to stop
5.启动zookeeper(这里使用kafka自带的zookeeper,也可以独立部署zookeeper使用)
使用默认的zookeeper.properties配置文件
zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
6.启动kafka
使用默认的server.properties配置文件
kafka-server-start.sh /usr/local/kafka/config/server.properties
启动失败并提示如下错误:
FATAL [KafkaServer id=] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)nager)) by writing to Zk with path version (kafka.coordinator.java.net.UnknownHostException: server38: server38: 未知的名称或服务
at java.base/java.net.InetAddress.getLocalHost(Unknown Source)
at kafka.server.KafkaHealthcheck$$anonfun$.apply(KafkaHealthcheck.scala:)
at kafka.server.KafkaHealthcheck$$anonfun$.apply(KafkaHealthcheck.scala:)
at scala.collection.TraversableLike$$anonfun$map$.apply(TraversableLike.scala:)
at scala.collection.TraversableLike$$anonfun$map$.apply(TraversableLike.scala:)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:)
at scala.collection.AbstractTraversable.map(Traversable.scala:)
at kafka.server.KafkaHealthcheck.register(KafkaHealthcheck.scala:)
表示解析不了server38这个host!
使用hostname可以看到,我们机器的hostname就是server38
修改/etc/hosts文件,增加一行如下内容即可:
127.0.0.1 server38 localhost
7.创建一个名字为test的topic
2181为zookeeper的默认端口
kafka-topics.sh --create --zookeeper localhost: --replication-factor --partitions --topic test
8.创建一个consumer接受消息
9092为kafka默认端口
kafka-console-consumer.sh --bootstrap-server localhost: --topic test
9.创建一个producer,并输入信息。
kafka-console-producer.sh --broker-list localhost: --topic test
在consumer进程中可以看到对应的输入信息。
PS:
1.查看kafka当前的topic列表
kafka-topics.sh --list --zookeeper localhost:
2.使用参数--from-beginning,让consumer从第一个开始接受消息
kafka-console-consumer.sh --bootstrap-server localhost: --topic test --from-beginning
以上。