Linux安装Kafka

Kafka安装部署

  1. Docker安装Zookpeer
docker pull zookeeper
  1. Docker启动Zookpeer
docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper:latest
  1. 到Kafka下载Kafka安装包,并上传到Linux上
下载地址:https://kafka.apache.org/downloads
  1. 解压Kafka安装包
tar -zxvf kafka_2.11-2.0.0.tgz
  1. 修改kafka-server 的配置文件
vim /kafka_2.11-2.0.0/config/server.properties
  • 修改内容
broker.id=1
log.dir=/data/kafka/logs-1
  1. 启动Kafka
bin/kafka-server-start.sh  config/server.properties
  1. 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
  1. 查看topics列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
test
  1. 生产消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>>hello world!
  1. 接收消息
kafka_2.11-2.0.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
hello world!
  1. 查看描述topics信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Topic:test  PartitionCount:1    ReplicationFactor:1 Configs:
Topic: test Partition: 0    Leader: 1   Replicas: 1 Isr: 1
“Leader”: 是负责给定分区的所有读取和写入的节点。 每个节点将成为分区随机选择部分的领导者。

“Replicas”: 是复制此分区日志的节点列表,无论它们是否是领导者,或者即使他们当前处于活动状态。

“Isr”: 是一组“同步”副本。这是复制品列表的子集,当前活着并被引导到领导者。

集群配置

Kafka 支持两种模式的集群搭建:可以在单机上运行多个 broker 实例来实现集群,也可在多台机器上搭建集群,下面介绍下如何实现单机多 broker 实例集群,其实很简单,只需要如下配置即可。

单机多BROKER 集群配置

利用单节点部署多个 broker。 不同的 broker 设置不同的 id,监听端口及日志目录。 例如:

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

cp config/server.properties config/server-3.properties

vim config/server-2.properties

vim config/server-3.properties

修改 :

broker.id=2

listeners = PLAINTEXT://your.host.name:9093

log.dir=/data/kafka/logs-2

broker.id=3

listeners = PLAINTEXT://your.host.name:9094

log.dir=/data/kafka/logs-3

启动Kafka服务:

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

bin/kafka-server-start.sh config/server-3.properties &

至此,单机多broker实例的集群配置完毕。

多机多 BROKER 集群配置

分别在多个节点按上述方式安装 Kafka,配置启动多个 Zookeeper 实例。

假设三台机器 IP 地址是 : 192.168.153.135, 192.168.153.136, 192.168.153.137

分别配置多个机器上的 Kafka 服务,设置不同的 broker id,zookeeper.connect 设置如下:

vim config/server.properties

里面的 zookeeper.connect

修改为:

zookeeper.connect=192.168.153.135:2181,192.168.153.136:2181,192.168.153.137:2181

使用 Kafka Connect 来导入/导出数据

Kafka Connect 是 Kafka 包含的一个工具,可以将数据导入和导出到 Kafka。它是一个可扩展的工具,运行 连接器,实现与外部系统交互的自定义逻辑。在这个快速入门中,我们将看到如何使用简单的连接器运行 Kafka Connect,这些连接器将数据从文件导入到 Kafka topic,并将数据从 Kafka topic 导出到文件。

首先,将通过创建一些种子数据开始测试:

[root@master kafka_2.11-2.0.0]# echo -e "liuxing\nyuan" > test.txt
[root@master kafka_2.11-2.0.0]# ls
bin  config  libs  LICENSE  logs  NOTICE  site-docs  test.txt

启动两个以独立模式运行的连接器,这意味着它们将在单个本地专用进程中运行。我们提供三个配置文件作为参数。首先是 Kafka Connect 过程的配置,包含常见的配置,例如要连接的 Kafka 代理以及数据的序列化格式。其余的配置文件都指定一个要创建的连接器。这些文件包括唯一的连接器名称,要实例化的连接器类以及连接器所需的任何其他配置。


bin/connect-standalone.sh  config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

Kafka 附带的这些示例配置文件使用您之前启动的默认本地群集配置,并创建两个连接器:第一个是源连接器,用于读取输入文件中的行,并将每个连接生成为 Kafka topic,第二个为连接器它从 Kafka topic 读取消息,并在输出文件中产生每行消息。

在启动过程中,您会看到一些日志消息,其中一些指示连接器正在实例化。Kafka Connect 进程启动后,源连接器应该开始读取 test.txt topic connect-test,并将其生成 topic ,并且接收器连接器应该开始读取 topic 中的消息 connect-test 并将其写入文件 test.sink.txt。我们可以通过检查输出文件的内容来验证通过整个管道传输的数据:

[root@master kafka_2.11-2.0.0]# ls
bin  config  libs  LICENSE  logs  NOTICE  site-docs  test.sink.txt  test.txt
[root@master kafka_2.11-2.0.0]# cat test.sink.txt 
liuxing
yuan

数据存储在 Kafka topic 中 connect-test,因此可以运行控制台使用者来查看 topic 中的数据:

[root@master kafka_2.11-2.0.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
{"schema":{"type":"string","optional":false},"payload":"liuxing"}
{"schema":{"type":"string","optional":false},"payload":"yuan"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Radom7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值