Kafka安装配置

来源:互联网 发布:杨虎城 蒋介石 知乎 编辑:程序博客网 时间:2024/06/04 18:14

Kafka运行依赖 Zookeeper,如未安装Zookeeper请参考(Zookeeper安装使用)

Kafka版本问题(这又是一大坑)
如果你的Storm安装的是1.0.X系列或更低的版本,建议你安装0.8.X.X版本的Kafka。
如果你的Storm安装的是1.1.X系列或更高的版本,建议你安装0.10.X.X版本的Kafka。

官方原文:
http://storm.apache.org/releases/1.1.0/storm-kafka-client.html

When selecting a kafka client version, you should ensure - 1. kafka api is compatible. storm-kafka-client module only supports 0.10 or newer kafka client API. For older versions, you can use storm-kafka module (https://github.com/apache/storm/tree/master/external/storm-kafka).

也就是说,1.1.X版的storm引入了新的storm-kafka-client与kafka交互,而1.0.X或更低版本的storm使用旧的storm-kafka与kafka交互。

当然,如果你够牛掰,你也可以自己封装一个spout,直接调用kafka的api与kafka交互(其实也不复杂,只是官方考虑比较全面,也可以简单实现一个)。

下载

wget http://mirror.bit.edu.cn/apache/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz

解压

tar -xzvf kafka_2.11-0.10.2.1.tgz -C /usr/local/

配置环境变量 vi /etc/profile

export KAFKA_HOME=/usr/local/kafka_2.11-0.10.2.1export PATH=$KAFKA_HOME/bin:$PATH

立即生效环境变量

source /etc/profile

主机名称到IP地址映射配置 (这里我们使用zookeeper一样的配置)
修改/etc/hosts

192.168.1.101  zoo1#注:调用客户端也需要配置IP映射,否则调用失败,或者可以都直接使用IP调用(要么配置,要么都不配置)#巨坑:开发过程,外部电脑调用虚拟机,也需要配置IP映射

修改kafka配置

broker.id=1host.name=zoo1listeners=PLAINTEXT://zoo1:9092advertised.listeners=PLAINTEXT://zoo1:9092log.dirs=/data/kafka-logsnum.partitions=4zookeeper.connect=zoo1:2181

启动Kafka(记得先启动zookeeper哦)

#注意环境变量是否配置成功kafka-server-start.sh config/server.properties &#后台启动kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &#如没有配置环境变量也可以直接使用绝对路径(或相对路径)启动/usr/local/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh /usr/local/kafka_2.11-0.10.2.1/config/server.properties &

创建主题

kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 1 --partitions 4 --topic  topic1

查看已创建的主题

kafka-topics.sh --list --zookeeper zoo1:2181

删除主题

 kafka-topics.sh  --delete --zookeeper zoo1:2181  --topic topic1

彻底删除topic:
1、配置delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。
2、删除kafka存储目录(server.properties文件log.dirs配置)相关topic目录

启动producer发送消息

kafka-console-producer.sh --broker-list zoo1:9092 --topic topic1

启动consumer消费消息

kafka-console-consumer.sh --zookeeper zoo1:2181 --topic topic1 --from-beginning

producer和consumer都启动成功后,在producer命令行输入一行回车,这是consumer马上能看到相同的消息。

producer是提供数据,我们可以使用其他方式,如:
1、使用其他程序调用kafka api
2、使用logstash或flume集成,直接读取日志数据源

原创粉丝点击