Kafka 官方文档学习笔记 — 启动配置kafka单点/多点集群 自带zookeeper管理

By | 2019年2月12日

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whywww/article/details/79601483

官方文档上quick start部分对kafka在单节点的不同端口上的运行和合作已经描述的非常详细,但是没有多节点集群的配置操作。本文在整合总结官方文档的启动部分的基础上,新增了构建配置多机器kafka集群,并使用自行安装的zookeeper管理的详细方法。

Quick start部分

start the server

启动zookeeper

kafka自带单点的zookeeper:
> bin/zookeeper-server-start.sh config/zookeeper.properties

启动kafka server

(-daemon可以守护进程,就不需要再克隆一个对话来操作了)
> bin/kafka-server-start.sh -daemon config/server.properties

测试进程

输入 jps 命令查看当前进程:
QuorumPeerMain是zookeeper进程,Kafka是kafka进程

创建topic

创建名为test的topic,一个分区和一个副本:
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看已有的topic列表:
> bin/kafka-topics.sh --list --zookeeper localhost:2181

删除topic

> bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

发送消息

通过本机9092端口发送消息,每行为一个message

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message

启动consumer

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a message
This is another message

启动多个broker

单台主机不同端口的server配置:
(多台主机需要配置zk和listener ip)

> cp config/server.properties config/server-1.properties
> cp config/server.properties config/server-2.properties

修改这些文件:

config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dir=/tmp/kafka-logs-1

config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dir=/tmp/kafka-logs-2

启动这两个server(通用):

> bin/kafka-server-start.sh -daemon config/server-1.properties &
...
> bin/kafka-server-start.sh -daemon config/server-2.properties &
...

查看某个topic详细信息

查看一个有三个副本的my-replicated-topic信息:

> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,2,0 Isr: 1,2,0

终结某个server进程

> ps aux | grep server-1.properties
7564 ttys002    0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.8/Home/bin/java...
> kill -9 7564

Connect Standalone

第一个配置文件是常规的kafka连接配置,后两个每个都是一个要创建的连接器
> bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

测试:
写入文件test.txt:
> echo -e "foo\nbar" > test.txt
查看产生的topic:
> more test.sink.txt
继续写入:
> echo Another line>> test.txt

多节点kafka集群配置:

启动zookeeper

在每台机器上安装zookeeper,并到zk安装目录下:
> bin/zkServer.sh start

测试:
查看zk状态:
> bin/zkServer.sh status
这里会看到有一台机器是leader,其他是follower

shell访问zk(最好换成ip地址):
> bin/zkCli.sh -server localhost:2181
每台主机都要启动zk

配置kafka

在每个机器上配置config/server.properties文件:
vi config/server.properties
需要修改的部分:

    broker.id=1 # 每个broker唯一的标示符,需unique
    listeners=PLAINTEXT://192.168.48.102:9092 # 本机的ip:port,通常都用9092端口
    host.name=192.168.48.102:9092 # 节点需要绑定的主机名称。如果没有设置,服务器会绑定到所有接口
    zookeeper.connect=192.168.48.101:9092,192.168.48.102:9092,192.168.48.103:9092 #不可以有空格!!这里一定要写对,kafka这个集群的所有机器:端口号,用逗号分隔

(想了解其他配置的意义可以参考:https://www.cnblogs.com/LUA123/p/7349145.html 或官方文档 “>http://kafka.apache.org/documentation/#brokerconfigs)_

启动kafka

在每台机器上输入同样启动命令:
> bin/kafka-server-start.sh -daemon config/server.properties

启动没有问题的话,可以先jps查看Kafka进程是否已经启动,再尝试上文同样的操作命令来探索kafka集群的工作方式~

发表评论