kafka集群搭建并验证(个人亲手搭建,真实有效)
本文主要介绍 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集群搭建并验证(个人亲手搭建,真实有效)相关推荐
- python读写kafka集群(转载+自己验证)
###############################版本信息######################################### 组件/系统 版本 Python 3.6 Kaf ...
- 搭建zookeeper+kafka集群
搭建zookeeper+kafka集群 一.环境及准备 集群环境: 软件版本: 部署前操作: 关闭防火墙,关闭selinux(生产环境按需关闭或打开) 同步服务器时间,选择公网ntpd服务器或 ...
- kafka之四:Kafka集群搭建
1.软件环境 1.linux一台或多台,大于等于2 2.已经搭建好的zookeeper集群 3.软件版本kafka_2.11-0.9.0.1.tgz 2.创建目录并下载安装软件 #创建目录 cd /o ...
- Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
文章目录 概述 部署信息 配置信息 验证 概述 对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点.要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可. ...
- kafka集群的搭建
本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...
- 大数据 -- zookeeper和kafka集群环境搭建
一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...
- centos7搭建Linux集群,CentOS 7下Kafka集群安装
一.环境操作系统和软件版本介绍 1.环境操作系统为CentOS Linux release 7.2.1511 (Core) 可用cat /etc/RedHat-release查询 2.软件版本 Kaf ...
- 转-Kafka【第一篇】Kafka集群搭建
转自: https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka[第一篇]Kafka集群搭建 Kafka初识 1.Kafka使用背景 在我们大 ...
- kafka集群搭建(消息)
1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行 ...
- zookeeper 和 kafka 集群搭建
Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...
最新文章
- Cocos 物理系统
- Http接口请求Long类型数据JsonObject反解析精度丢失问题
- prolog_如何通过观看权力的游戏学习Prolog
- 硅谷产品实战-总结:20、想要增长,你的团队需要高效的工作流
- 【硅谷牛仔】Pinterest CEO--希伯尔曼--成功关键在推广而非技术
- 通俗理解注意力机制中的Q、K和V表示的具体含义
- SAP-PM-预防性维护-01-概览
- R语言问题剖析20篇(一)-R语言泛函式编程purrr实现优雅循环迭代
- springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA
- mp4v2再学习 -- H264视频编码成MP4文件
- 144.⑨要写信(错排公式与高精度练习)
- MetaWeblog API中文说明
- leetcode 697. 数组的度(hashmap)
- MySQL笔记——JDBC入门
- linux,让网卡随着系统启动自动生效
- git bash 出现vim的时候怎么退出
- css 列表内容滚动,stroll.js 炫酷的 CSS3 列表滚动动画集合 - 文章教程
- 前言 第一章 为什么要培养好习惯
- linux安装weblogic界面,Weblogic11g 安装Linux下无Weblogic安装图形界面
- Git(3):git clone远程GitHub仓库代码出现“Permission Denied (publickey)”问题