Kafka 配置

栏目: 后端 · 发布时间: 6年前

内容简介:Kafka 和我之前接触的Flume 非常相识,不过我关心的是它的搭建方式。软件版本如下:参考Hadoop HA 搭建 目前已完成 ZooKeeper 环境搭建

Kafka 和我之前接触的Flume 非常相识,不过我关心的是它的搭建方式。

环境介绍

软件版本如下:

Program Version URL
System CentOS-7-x86_64-Minimal-1810 TUNA Mirrors
JAVA jdk-8u211-linux-x64.tar.gz Oracle
ZooKeeper zookeeper-3.4.5.tar.gz Apache Archive
Kafka kafka_2.11-1.0.0.tgz Apache Archive

目标

  • 正确启动 Kafka
  • 完成 生产者(producer) 配置
  • 完成 消费者(consumer) 配置

基础环境配置

参考Hadoop HA 搭建 目前已完成 ZooKeeper 环境搭建

HostName broker id Config Name IP
master 1 server-1.properties 192.168.66.128
slave1 2 server-2.properties 192.168.66.129
slave2 3 server-3.properties 192.168.66.130

zoo.cfg

zoo.cfg 配置如下

tickTime=2000
initLimit=10
syncLimit=5

dataDir=/usr/local/src/zookeeper-3.4.5/data
dataLogDir=/usr/local/src/zookeeper-3.4.5/logs

clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

启动 ZooKeeper

在每台主机上都要执行该命令

zkServer.sh start

执行完毕后查看他们的运行状态

[root@master ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

[root@slave1 ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader

[root@slave2 ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

当有一台主机处于 leader 状态,其他的都处于 follower 时即启动成功

下载解压

curl -O http://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
tar xf kafka_2.11-1.0.0.tgz -C /usr/local/src/
mv /usr/local/src/kafka_2.11-1.0.0 /usr/local/src/kafka

配置

这里我直接就使用我自己,已经安装好的 ZooKeeper 作为服务端不使用 Kafka 自带的 ZooKeeper ,如果你需要使用自带的可以参考以下文档:

Kafka Quickstart English

Kafka Quickstart 中文文档

编写配置文件

新建 master 配置文件

vi /usr/local/src/kafka/config/server-1.properties

写入以下内容

broker.id=1
listeners=PLAINTEXT://master:9093
log.dir=/root/kafka/logs
zookeeper.connect=master:2181,slave1:2181,slave2:2181

新建 slave1 配置文件

vi /usr/local/src/kafka/config/server-2.properties

写入以下内容

broker.id=2
listeners=PLAINTEXT://slave1:9093
log.dir=/root/kafka/logs-2
zookeeper.connect=master:2181,slave1:2181,slave2:2181

新建 slave2 配置文件

vi /usr/local/src/kafka/config/server-3.properties

写入以下内容

broker.id=3
listeners=PLAINTEXT://slave2:9093
log.dir=/root/kafka/logs-3
zookeeper.connect=master:2181,slave1:2181,slave2:2181

同步配置

将程序和配置分发到所有主机上

scp /usr/local/src/kafka slave1:/usr/local/src/
scp /usr/local/src/kafka slave2:/usr/local/src/

设置环境变量

vi ~/.bash_profile

在文件底部新增以下内容

export KAFKA_HOME=/usr/local/src/kafka
PATH=$PATH:$KAFKA_HOME/bin

使其生效

source ~/.bash_profile

运行

master 上执行

kafka-server-start.sh /usr/local/src/kafka/config/server-1.properties

slave1 上执行

kafka-server-start.sh /usr/local/src/kafka/config/server-2.properties

slave2 上执行

kafka-server-start.sh /usr/local/src/kafka/config/server-3.properties

出现类似以下输出内容说明启动成功了

[2019-06-04 19:18:04,467] INFO [KafkaServer id=1] started (kafka.server.KafkaServer)

创建Topic

在一个新的窗口打开 mastershell 执行

kafka-topics.sh --create --zookeeper master:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic

–replication-factor 2 #复制两份

–partitions 1 #创建1个分区

–topic #主题为my-replicated-topic

查看所有 topic

kafka-topics.sh --list --zookeeper master:12181

应输出

my-replicated-topic

查看 my-replicated-topic 详细信息

kafka-topics.sh --describe --zookeeper master:2181 --topic my-replicated-topic

应输出

Topic:my-replicated-topic	PartitionCount:1	ReplicationFactor:2	Configs:
	Topic: my-replicated-topic	Partition: 0	Leader: 2	Replicas: 2,3	Isr: 2,3
  • “leader”是负责给定分区所有读写操作的节点。每个节点都是随机选择的部分分区的领导者。
  • “replicas”是复制分区日志的节点列表,不管这些节点是leader还是仅仅活着。
  • “isr”是一组“同步”replicas,是replicas列表的子集,它活着并被指到leader。

不知到为啥有两个 Leader ,而且看起来 master 好像离线了一样。感觉应该是我设置 --replication-factor 2 导致的,也可以能是我刚刚调试的时候没有把这个 topic 删干净导致的

生产者&消费者

master 上面执行

kafka-console-producer.sh --broker-list master:9093 --topic my-replicated-topic

输入任意字符

slave2 上面执行

kafka-console-consumer.sh --bootstrap-server master:9093 --from-beginning --topic my-replicated-topic

看到消息同步出现,即成功。


以上所述就是小编给大家介绍的《Kafka 配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Mathematica Cookbook

Mathematica Cookbook

Sal Mangano / O'Reilly Media / 2009 / GBP 51.99

As the leading software application for symbolic mathematics, Mathematica is standard in many environments that rely on math, such as science, engineering, financial analysis, software development, an......一起来看看 《Mathematica Cookbook》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试