大数据集群学习(8):kafka集群的安装搭建

kafka基本概念

Kafka 是一个分布式的基于消息发布/订阅模式的消息中间件,在业界主要应用于大数据实时流式计算领域,起缓冲和削峰填谷的作用。其具有高吞吐、低延迟的特性,许多大数据实时流式处理系统比如Spark、Flink 等都能很好地与之集成。

kafka特点

  • 高吞吐量、低延迟:kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个 topic 可以分多个 partition, 由多个 consumer group 对 partition 进行 consume 操作
  • 可扩展性:kafka 集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中有节点失败(若副本数量为 n,则允许 n-1 个节点失败)
  • 高并发:支持数千个客户端同时读写

安装部署

kafka依赖scala以及zookeeper,因此搭建kafka之前需要先安装scala以及zookeeper

如果用的kafka3.x以上版本,可以配置Kraft,不依赖于zookeeper

zookeeper 安装

zookeeper的安装我之前也写过,详情请看 大数据集群学习(4):zookeeper安装部署

scala 安装

在scala官网上下载scala,官网地址:scala-lang.org/download/2....

这里有两个版本,一个是用于linux环境的,一个是用于windows环境的,在windows环境下进行scala编程就下载windows的。我们下载linux环境的那个版本就行了

下载的包上传到 /apps/scala 目录下,然后解压

linux 复制代码
tar -zxvf scala-2.13.0.tgz 

解压之后配置scala环境变量,修改/etc/profile文件,加入以下内容

linux 复制代码
#scala
export SCALA_HOME=/apps/scala/scala-2.13.0
export PATH=$PATH:$SCALA_HOME/bin

使环境变量生效

linux 复制代码
source /etc/profile

然后在node2以及node3机子上进行同样的配置操作,scala就安装好了

可以用以下命令验证一下是否安装成功

linux 复制代码
scala -version

kafka安装

在kafka官网上下载kafka的包,官网地址:kafka.apache.org/downloads

这里我用的是kafka3.3.1版本的

这里kafka3.3.1版本的有两个版本,一个是依赖于scala2.12的,一个是依赖于scala2.13的,所以,kafka-2.13-3.3.1,第一个版本号指scala的版本号,如果你使用的是scala2.12的,那么配置scala环境就要用scala2.12的,我们刚刚配置的是2.13的,现在就下载这个依赖于2.13的压缩包

将解压包上传至 /apps/kafka,解压缩

linux 复制代码
tar -zxvf kafka_2.13-3.3.1.tgz

进入到解压后的kafka目录,创建一个kafka-logs目录

linux 复制代码
mkdir kafka-logs

进入config目录,编辑server.properties,编辑以下配置

linux 复制代码
############################# Server Basics #############################
broker.id=0

############################# Log Basics #############################
log.dirs=/apps/kafka/kafka_2.13-3.3.1/kafka-logs

############################# Log Retention Policy #############################
# 底层存储的数据(日志)留存时长(默认 7 天)
log.retention.hours=168

# 底层存储的数据(日志)留存量(默认 1G)
log.retention.bytes=1073741824

log.retention.check.interval.ms=300000

############################# Zookeeper #############################
zookeeper.connect=node1:2181,node2:2181,node3:2181

注意注意,broker.id是kafka服务器的唯一标识,node1上面用broker.id=0,node2就要用broker.id=1,node3就要用broker.id=2,以此类推(0,1,2,3,...)

在node2,以及node3上进行同样的配置

编辑环境变量 /etc/profile ,加入以下内容

linux 复制代码
#kafka
export KAFKA_HOME=/apps/kafka/kafka_2.13-3.3.1
export PATH=$PATH:$KAFKA_HOME/bin

使环境变量生效

linux 复制代码
source /etc/profile

kafka启动命令

linux 复制代码
bin/kafka-server-start.sh -daemon /apps/kafka/kafka_2.13-3.3.1/config/server.properties

停止命令

linux 复制代码
bin/kafka-server-stop.sh

启动后用jps命令可以看到有个kafka的进程

一键启动脚本

进入bin目录,新建个kfk.sh文件,加入以下内容

linux 复制代码
#!/bin/bash
case $1 in
"start"){
for i in node1 node2 node3
do
 echo ---------- kafka $i 启动 ----------
ssh $i "/apps/kafka/kafka_2.13-3.3.1/bin/kafka-server-start.sh -daemon /apps/kafka/kafka_2.13-3.3.1/config/server.properties"
done
};;
"stop"){
for i in node1 node2 node3
do
 echo ---------- kafka $i 停止 ----------
ssh $i "/apps/kafka/kafka_2.13-3.3.1/bin/kafka-server-stop.sh"
done
};;
esac

测试脚本

linux 复制代码
#启动
bin/kfk.sh start
#停止
bin/kfk.sh top

kafka已经搭好了
以上过程若有不对,欢迎指出😀😀

相关推荐
@insist1237 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师7 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记8 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
数智化精益手记局9 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Elastic 中国社区官方博客10 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog
jkyy201411 小时前
AI运动数字化:以技术重塑场景,健康有益赋能全域运动健康管理
大数据·人工智能·健康医疗
金融小师妹11 小时前
4月30日多因子共振节点:鲍威尔“收官效应”与权力结构重塑的预期重构
大数据·人工智能·重构·逻辑回归
2601_9499251811 小时前
AI Agent如何重构跨境物流的决策?
大数据·人工智能·重构·ai agent·geo优化·物流科技
xiaoduo AI12 小时前
客服机器人问题解决率怎么统计?Agent系统自动判断是否解决,比人工回访准?
大数据·人工智能·机器人
小五兄弟13 小时前
YouTube 肖像检测扩展背后:短剧出海版权保护的技术实现与实战策略
大数据·人工智能