下载:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.1/kafka_2.11-2.1.1.tgz
http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1/kafka_2.11-2.1.1.tgz
(1)解压到/opt/文件夹下
tar -zxvf software/kafka_2.11-2.1.1.tar.gz
并且在kafka内部新建一个logs文件夹,用来放日志文件
(2)配置文件
修改config/server.properties (不如直接复制来得快,所以下面我就把我的配置文件贴上来了)
#这里每台机器都不能一样,其他机器修改为broker.id=1 broker.id=2
master:
broker.id=0
port=9092
#listeners=PLAINTEXT://10.1.18.201:9092
#advertised.listeners=PLAINTEXT://10.1.18.201:9092
host.name=10.1.18.201
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka_2.11-2.1.1/logs
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.1.18.201:2181,10.1.18.202:2181,10.1.18.204:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
delete.topic.enalbe=true
slave1 :
broker.id=1
port=9092
listeners=PLAINTEXT://:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka_2.11-2.1.1/logs
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.1.18.201:2181,10.1.18.202:2181,10.1.18.204:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
delete.topic.enalbe=true
(3)运行下试试
bin/kafka-server-start.sh config/server.properties &
启动成功!
常用命令
创建话题:
bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 2 --partitions 2 --topic testtopics
列出当前话题:
bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
删除话题
bin/kafka-topics.sh --delete --zookeeper master:2181 --topic mytopics
可以在不同客户端创建一个生产者:
bin/kafka-console-producer.sh --broker-list master:9092 --topic t_test
然后创建消费者:
bin/kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic t_test
在生产者输入信息,会发现消费者就会出现对应的信息:
最后,利用G_scsd博客上的一个非常形象的形容来总结一下
kafka好比就是中央电视台,而中央电视台下面有很多节目,生产者就是制作节目的团队,而消费者就是我们观看这个节目的人,一开始在zookeeper创建一个节目,假设就叫cctv1,有了这个节目名后,我们就得请一个团队来填充这个节目,比如拉广告啊,放电视剧之类的数据,而我们消费者要观看这个节目的话就得需要zookeeper来授权给我们。中央电视台则只是存数据的,相当于一个中间人,和现在中介差不多个意思。