内容简介: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
,如果你需要使用自带的可以参考以下文档:
编写配置文件
新建 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
在一个新的窗口打开 master
的 shell 执行
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 配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 6、如何获取配置中心的配置
- React降级配置及Ant Design配置
- vscode 配置eslint 开发vue的相关配置
- git commit 规范校验配置和版本发布配置
- hadoop地址配置、内存配置、守护进程设置、环境设置
- 在hibernate中配置事务级别与命名查询配置【原创】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Flask Web开发:基于Python的Web应用开发实战
[美] Miguel Grinberg / 安道 / 人民邮电出版社 / 2014-12 / 59.00元
本书不仅适合初级Web开发人员学习阅读,更是Python程序员用来学习高级Web开发技术的优秀参考书。 • 学习Flask应用的基本结构,编写示例应用; • 使用必备的组件,包括模板、数据库、Web表单和电子邮件支持; • 使用包和模块构建可伸缩的大型应用; • 实现用户认证、角色和个人资料; • 在博客网站中重用模板、分页显示列表以及使用富文本; • 使用基于......一起来看看 《Flask Web开发:基于Python的Web应用开发实战》 这本书的介绍吧!