内容简介: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中配置事务级别与命名查询配置【原创】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!