本文主要介绍 Kafka 集群搭建,本文的内容以 Linux CentOS7 作为安装演示,其他 Linux 系列的操作系统也可以根据情况参考本文的内容。具体的操作流程如下:

前提

kafka安装的前提需要有jdk环境,还需要涉及ZooKeeper,没有安装的朋友可以先安装 jdk以及zookeeper。

为了节省大家的时间,我已准备好了安装包,可通过以下方式提取:

链接:https://pan.baidu.com/s/1NK-jrlJxbrdiNFZeGqpM-A
提取码:hra5

压缩包内容:

一.安装JDK

1.通过以下命令解压压缩包

tar -zxvf jdk-8u181-linux-x64.tar.gz

2.配置 JDK 的环境变量。修改/etc/profile 文件并向其中添加如下配置:
修改profile文件

vim /etc/profile

在profile文件添加以下环境

export JAVA_HOME=/opt/kafka/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.执行 source /etc/profile 命令使配置生效。最后可以通过 java –version命令验证 JDK 是否已经安装配置成功。如果安装配置成功,则会正确显示出 JDK 的版本信息,参考如下:

二.搭建Zookeeper集群

1.通过以下命令解压压缩包

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gzjdk-8u181-linux-x64.tar.gz

2.向/etc/profile 配置文件中添加如下内容:
修改profile文件

vim /etc/profile

配置文件中添加如下内容:

export ZOOKEEPER_HOME=/opt/kafka/apache-zookeeper-3.5.7-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

再执行 source /etc/profile 命令使配置生效。

3.修改 ZooKeeper 的配置文件。首先进入$ZOOKEEPER_HOME/conf目录,并将zoo_sample.cfg 文件修改为 zoo.cfg:
cp zoo_sample.cfg zoo.cfg

4.修改apache-zookeeper-3.5.7-bin目录名称
mv apache-zookeeper-3.5.7-bin zookeeper1
复制三份,搭建集群
cp -r zookeeper1 zookeeper2
cp -r zookeeper1 zookeeper3

5.分别修改zoo.cfg.
进入到cd /opt/kafka/zookeeper_cluster/zookeeper1/conf ,vim zoo.cfg

dataDir:服务器存储快照文件目录。
dataLogDir:服务器存日志文件目录。
server.A=B:C:D
含义:
A:节点在集群中的唯一ID,需要与dataDir/myid文件中的内容保持一致,取值范围为1~255。
B:节点的服务器IP地址。
C:集群中Follower节点与Leader 节点之间通信的端口。
D:当集群中的Follower节点宕机或出现故障时,集群进行重新选举Leader时所使用的端口。

然后分别进入到zookeeper2,zookeeper3,执行步骤5的操作,修改dataDir,dataLogDir到指定目录。

6.在每个zookeeper的 data 目录下创建一个 myid 文件,内容分别是1、2、3 。这个文件就是记录每个服务器的ID。(没有data目录的可以先创建data目录mkdir data

echo 1 >/opt/kafka/zookeeper_cluster/zookeeper1/data/myid
echo 2 >/opt/kafka/zookeeper_cluster/zookeeper2/data/myid
echo 3 >/opt/kafka/zookeeper_cluster/zookeeper3/data/myid

7.启动zookeeper。分别进入三个zookeeper目录,执行以下命令:
./bin/zkServer.sh start

8.查看zookeeper状态
./bin/zkServer.sh status

可以看到,三个服务都启动成功,其中zookeeper2为leader(领导者),其余两个为follower(跟随者),到此,zookeeper集群已搭建成功。

三.安装kafka并搭建集群

1.解压kafka:

tar -zxvf kafka_2.11-2.4.0.tgz

2.进入解压目录 cd /opt/kafka/kafka_cluster,修改目录名mv kafka_2.11-2.4.0 kafka1

3.复制另外两份,搭建集群
cp -r kafka1 kafka2
cp -r kafka1 kafka3

3.修改配置文件

进入config目录
/opt/kafka/kafka_cluster/kafka1/config
修改server.properties文件
vim server.properties

主要修改以下几点
kafka1 server.properties:

#每个broker在集群中的唯一标识,不能重复
broker.id=0
listeners=PLAINTEXT://10.0.12.16:9092
advertised.listeners=PLAINTEXT://43.139.86.193:9092
#日志存放目录
log.dirs=/opt/kafka/kafka_cluster/kafka1/logs
#zookeeper集群
zookeeper.connect=10.0.12.16:2181,10.0.12.16:2182,10.0.12.16:2183

kafka2 server.properties:

#每个broker在集群中的唯一标识,不能重复
broker.id=1
listeners=PLAINTEXT://10.0.12.16:9093
advertised.listeners=PLAINTEXT://43.139.86.193:9093
#日志存放目录
log.dirs=/opt/kafka/kafka_cluster/kafka2/logs
#zookeeper集群
zookeeper.connect=10.0.12.16:2181,10.0.12.16:2182,10.0.12.16:2183

kafka3 server.properties:

#每个broker在集群中的唯一标识,不能重复
broker.id=2
listeners=PLAINTEXT://10.0.12.16:9094
advertised.listeners=PLAINTEXT://43.139.86.193:9094
#日志存放目录
log.dirs=/opt/kafka/kafka_cluster/kafka3/logs
#zookeeper集群
zookeeper.connect=10.0.12.16:2181,10.0.12.16:2182,10.0.12.16:2183

4.启动kafka服务:

cd /opt/kafka/kafka_cluster/kafka1
bin/kafka-server-start.sh config/server.properties &cd /opt/kafka/kafka_cluster/kafka2
bin/kafka-server-start.sh config/server.properties &cd /opt/kafka/kafka_cluster/kafka3
bin/kafka-server-start.sh config/server.properties &

若启动报以下错误:
The Cluster ID *** doesn‘t match stored clusterId Some(***) in meta.properties The broker

解决方案:
进入到kafka_2.11-2.4.0/config/server.properties,找到log.dirs对应路径。


进入/tmp/kafka-logs找到meta.properties文件
vim meta.properties修改cluster.id为错误日志中的ID;
修改broker.id为kafka_2.11-2.4.0/config/server.properties里面的broker.id

修改完成之后再次启动就成功了。

四.验证

1.创建一个topic:

bin/kafka-topics.sh --create --zookeeper 10.0.12.16:2181,10.0.12.16:2182,10.0.12.16:2183 --replication-factor 2 --partitions 2 --topic topic1

2.查看已经创建的Topic信息

bin/kafka-topics.sh --list --zookeeper 10.0.12.16:2181,10.0.12.16:2182,10.0.12.16:2183

3.发送消息

首先多开一个窗口,执行以下命令,做为消费者去接收消息。

bin/kafka-console-consumer.sh --bootstrap-server 43.139.86.193:9092 --topic topic1 --from-beginning

然后执行以下命令发送消息。

bin/kafka-console-producer.sh --broker-list 43.139.86.193:9092 --topic topic1

结果:
发送页面:

接收页面:

可以看到,消息也成功发送,并且被成功接收到。

以上就是本文所有内容,如有不当,欢迎纠正!

kafka集群搭建并验证(个人亲手搭建,真实有效)相关推荐

  1. python读写kafka集群(转载+自己验证)

    ###############################版本信息######################################### 组件/系统 版本 Python 3.6 Kaf ...

  2. 搭建zookeeper+kafka集群

      搭建zookeeper+kafka集群 一.环境及准备 集群环境:   软件版本: 部署前操作: 关闭防火墙,关闭selinux(生产环境按需关闭或打开) 同步服务器时间,选择公网ntpd服务器或 ...

  3. kafka之四:Kafka集群搭建

    1.软件环境 1.linux一台或多台,大于等于2 2.已经搭建好的zookeeper集群 3.软件版本kafka_2.11-0.9.0.1.tgz 2.创建目录并下载安装软件 #创建目录 cd /o ...

  4. Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群

    文章目录 概述 部署信息 配置信息 验证 概述 对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点.要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可. ...

  5. kafka集群的搭建

    本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...

  6. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

  7. centos7搭建Linux集群,CentOS 7下Kafka集群安装

    一.环境操作系统和软件版本介绍 1.环境操作系统为CentOS Linux release 7.2.1511 (Core) 可用cat /etc/RedHat-release查询 2.软件版本 Kaf ...

  8. 转-Kafka【第一篇】Kafka集群搭建

    转自: https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka[第一篇]Kafka集群搭建 Kafka初识 1.Kafka使用背景 在我们大 ...

  9. kafka集群搭建(消息)

    1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行 ...

  10. zookeeper 和 kafka 集群搭建

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

最新文章

  1. Cocos 物理系统
  2. Http接口请求Long类型数据JsonObject反解析精度丢失问题
  3. prolog_如何通过观看权力的游戏学习Prolog
  4. 硅谷产品实战-总结:20、想要增长,你的团队需要高效的工作流
  5. 【硅谷牛仔】Pinterest CEO--希伯尔曼--成功关键在推广而非技术
  6. 通俗理解注意力机制中的Q、K和V表示的具体含义
  7. SAP-PM-预防性维护-01-概览
  8. R语言问题剖析20篇(一)-R语言泛函式编程purrr实现优雅循环迭代
  9. springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA
  10. mp4v2再学习 -- H264视频编码成MP4文件
  11. 144.⑨要写信(错排公式与高精度练习)
  12. MetaWeblog API中文说明
  13. leetcode 697. 数组的度(hashmap)
  14. MySQL笔记——JDBC入门
  15. linux,让网卡随着系统启动自动生效
  16. git bash 出现vim的时候怎么退出
  17. css 列表内容滚动,stroll.js 炫酷的 CSS3 列表滚动动画集合 - 文章教程
  18. 前言 第一章 为什么要培养好习惯
  19. linux安装weblogic界面,Weblogic11g 安装Linux下无Weblogic安装图形界面
  20. Git(3):git clone远程GitHub仓库代码出现“Permission Denied (publickey)”问题

热门文章

  1. C语言也能干大事第十三节(如鹏基础)
  2. B端、C端产品的区别|产品经理面试题第1篇|||答题思路
  3. 快速排序-C语言版(带图详细)
  4. html5 摇骰子游戏,HTML5+JavaScript实现掷骰子游戏代码
  5. linux内核学习10:中断和异常
  6. 论文阅读《Language Models are Unsupervised Multitask Learners》
  7. AndRoid studio创建APP图标
  8. 天池大数据竞赛-河北高校邀请赛——二手车交易价格预测-初赛第22名
  9. 安卓接入融云即时通讯的简单步骤
  10. 计算机教室管理员应知应会,教室管理