写点什么

Ubuntu 20.04 搭建 kafka 集群

用户头像
玏佾
关注
发布于: 55 分钟前
Ubuntu 20.04搭建kafka集群

Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,由 Scala 和 Java 编写。Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像 Hadoop 一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka 的目的是通过 Hadoop 的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。


最新版 kafka 是自带 zookeeper 的,所以不需要先安装 zk。如果是老版本请先安装 zookeeper,参考:Ubuntu 20.04搭建zookeeper集群 - InfoQ 写作平台

1.准备

Kafka 版本:kafka_2.13-2.8.0.tgz

镜像下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.8.0/kafka_2.13-.tgz

之前安装 kvm 准备三台虚拟机:192.168.2.31,192.168.2.32,192.168.33

安装 kvm 虚拟机:https://xie.infoq.cn/article/af423568b655968a605ed7fac


2.安装配置

下载 kafka

$ wget -c https://mirrors.bfsu.edu.cn/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz


解压缩

$ tar -zxvf kafka_2.13-2.8.0.tgz


移动到/usr/local目录

$ sudo mv kafka_2.13-2.8.0 /usr/local


创建配置目录

$ cd ~

$ mkdir kafka && mkdir kafka/zookeeper && mkdir kafka/log && mkdir kafka/log/zookeeper && mkdir kafka/log/kafka


3.配置 zookeeper

修改 zookeeper.properties 配置

$ sudo nano /usr/local/kafka_2.13-2.8.0/conf/zookeeper.properties

dataDir=/home/ubuntu/kafka/zookeeper #修改为刚才创建的目录# the port at which the clients will connectclientPort=2181# 添加三台server服务器地址server.0=192.168.2.31:2888:3888server.1=192.168.2.32:2888:3888server.2=192.168.2.33:2888:3888
# disable the per-ip limit on the number of connections since this is a non-pro>maxClientCnxns=0# Disable the adminserver by default to avoid port conflicts.# Set the port to something non-conflicting if choosing to enable thisadmin.enableServer=false# admin.serverPort=8080
# 注意:kafka自带的ZK必须配置这几项,否则启动时会报错tickTime=1000 #CS通信心跳数initLimit=10 #LF初始通信时限syncLimit=5 #LF同步通信时限
复制代码

创建对应的 myid 文件和内容。


详细配置可参考:https://xie.infoq.cn/article/09bcd9fc550307b64f321b947

4.配置 kafka

修改 server.properties 文件配置

$ nano /usr/local/kafka_2.13-2.8.0/config/server.properties

# The id of the broker. This must be set to a unique integer for each broker.broker.id=0    #broker编号保持唯一,可与ZK保持一致
# Hostname and port the broker will advertise to producers and consumers. If not set, # it uses the value for "listeners" if configured. Otherwise, it will use the value# returned from java.net.InetAddress.getCanonicalHostName().advertised.listeners=PLAINTEXT://192.168.2.31:9092 #监听地址修改为本机

# A comma separated list of directories under which to store log fileslog.dirs=/home/ubuntu/kafka/log/kafka #日志记录地址,配置到刚才创建的目录
# The default number of log partitions per topic. More partitions allow greater# parallelism for consumption, but this will also result in more files across# the brokers.num.partitions=3 #默认的分片个数,broker需保持一致

# Zookeeper connection string (see zookeeper docs for details).# This is a comma separated host:port pairs, each corresponding to a zk# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".# You can also append an optional chroot string to the urls to specify the# root directory for all kafka znodes.zookeeper.connect=192.168.2.31:2181,192.168.2.32:2181,192.168.2.33:2181 #ZK地址修改为上面的三个
复制代码


5.设置环境变量

为了方便执行语句,这里可以配置一下环境变量。

#设置环境变量

export ZK_HOME=/usr/local/kafka_2.13-2.8.0/

export PATH=$PATH:$ZK_HOME/bin


更新一下环境变量

$ source /etc/profile


6.启动 zookeeper

先启动 ZK

$ zookeeper-server-start.sh /usr/local/kafka_2.13-2.8.0/config/zookeeper.properties &


后台启动方法

$ nohup zookeeper-server-start.sh /usr/local/kafka_2.13-2.8.0/config/zookeeper.properties >/home/ubuntu/kafka/log/zookeeper/zookeeper.log 2>1 &


只有等三台全部启动后才不会报错。可以查看 zk 日志。

$ cat /home/ubuntu/kafka/log/zookeeper/zookeeper.log


7.启动 kafka

启动 kafka

$ kafka-server-start.sh /usr/local/kafka_2.13-2.8.0/config/server.properties &


后台启动方法

$ nohup kafka-server-start.sh /usr/local/kafka_2.13-2.8.0/config/server.properties >/home/ubuntu/kafka/log/kafka/kafka.log 2>1 &


同样查看 kafka 日志没有错误则启动成功。

$ cat /home/ubuntu/kafka/log/kafka/kafka.log


8.测试

创建一个名为 test 的 topic

$ kafka-topics.sh -create --zookeeper 192.168.2.31:2181,192.168.2.32:2181,192.168.2.33:2181 -replication-factor 3 --partitions 3 --topic test


查看 topic 列表

$ kafka-topics.sh --list --zookeeper 192.168.2.31:2181

test


查看 topic 详细信息

$ kafka-topics.sh --describe --zookeeper 192.168.2.31:2181 --topic test

Topic: test     TopicId: wD2GfrSHR0Oz7wMR3az6Gg PartitionCount: 3       ReplicationFactor: 3      Configs:         Topic: test     Partition: 0    Leader: 2       Replicas: 2,1,0 Isr: 2,1,0        Topic: test     Partition: 1    Leader: 0       Replicas: 0,2,1 Isr: 0,2,1        Topic: test     Partition: 2    Leader: 1       Replicas: 1,0,2 Isr: 1,0,2
复制代码


发布于: 55 分钟前阅读数: 5
用户头像

玏佾

关注

还未添加个人签名 2013.06.26 加入

还未添加个人简介

评论

发布
暂无评论
Ubuntu 20.04搭建kafka集群