实战Kafka的部署

news2024/11/18 1:45:57

目录

一、环境准备

二、安装配置jdk8

(1)Kafka、Zookeeper(简称:ZK)运行依赖jdk8

三、安装配置ZK

(1)安装

(2)配置

四、配置Kafka

(1)配置

五、启动、验证ZK集群

(1)启动

(2)验证

六、启动、验证Kafka

(1)启动

(2)验证

7、监控 Kafka Manager


一、环境准备

  • 服务器

安装软件主机名IP地址系统版本配置
zookeeper/kafkaKafka110.12.153.200centos7.5.18041核2G
zookeeper/kafkaKafka210.12.153.201centos7.5.18041核2G
zookeeper/kafkaKafka310.12.153.202centos7.5.18041核2G
  • 软件版本:jdk-8u121-linux-x64.tar.gz、 kafka_2.11-2.0.0.tgz

  • 示例节点:10.12.153.200

  • 配置域名解析

  • 关闭防火墙selinux

二、安装配置jdk8

(1)Kafka、Zookeeper(简称:ZK)运行依赖jdk8

上传并解压jdk8的包至/usr/local/目录下

tar zxvf /usr/local/package/jdk-8u121-linux-x64.tar.gz -C /usr/local/

改名为jdk8

mv  jdk1.8.0_211  jdk8

配置环境变量

vim /etc/profile
最后面加入以下内容
export RATH=/usr/local/jkd8/bin:$PATH
保存退出后重新加载
source /etc/profile

三、安装配置ZK

Kafka运行依赖ZK,Kafka官网提供的tar包中,已经包含了ZK,这里不再额下载ZK程序。

官网地址Apache Kafka

(1)安装
tar zxvf /usr/local/package/kafka_2.11-2.0.0.tgz -C /usr/local/
(2)配置
vim /usr/local/kafka_2.11-2.0.0/config/zookeeper.properties
#删除全部内容粘贴以下内容
dataDir=/opt/data/zookeeper/data 
dataLogDir=/opt/data/zookeeper/logs
clientPort=2181 
tickTime=2000 
initLimit=20 
syncLimit=10 
server.1=10.12.153.200:2888:3888             //kafka集群IP:Port .1为id 3处要对应
server.2=10.12.153.201:2888:3888
server.3=10.12.153.202:2888:3888

配置项含义:

dataDir ZK数据存放目录。
dataLogDir  ZK日志存放目录。
clientPort  客户端连接ZK服务的端口。
tickTime        ZK服务器之间或客户端与服务器之间维持心跳的时间间隔。
initLimit       允许follower(相对于Leaderer言的“客户端”)连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
syncLimit   Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
server.1=172.16.244.31:2888:3888    2888是follower与leader交换信息的端口,3888是当leader挂了时用来执行选举时服务器相互通信的端口。

创建data、log目录

mkdir -p /opt/data/zookeeper/{data,logs}

 创建myid文件

​​​​​​​kafka1服务器

echo 1 > /opt/data/zookeeper/data/myid

kafka2服务器

echo 2 > /opt/data/zookeeper/data/myid

kafka3服务器

echo 3> /opt/data/zookeeper/data/myid

四、配置Kafka

(1)配置
vim /usr/local/kafka_2.11-2.0.0/config/server.properties
#覆盖为以下内容,注意broker.id号三台机器不能为一样的,必须对应上面的myid
broker.id=1
listeners=PLAINTEXT://10.12.153.200:9092  #本机ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/data/kafka/logs
num.partitions=6
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=10.12.153.200:2181,10.12.153.201:2181,10.12.153.202:2181  #kafka集群ip地址
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

配置项含义:

broker.id   每个server需要单独配置broker id,如果不配置系统会自动配置。
listeners       监听地址,格式PLAINTEXT://IP:端口。
num.network.threads 接收和发送网络信息的线程数。
num.io.threads          服务器用于处理请求的线程数,其中可能包括磁盘I/O。
socket.send.buffer.bytes    套接字服务器使用的发送缓冲区(SO_SNDBUF)
socket.receive.buffer.bytes 套接字服务器使用的接收缓冲区(SO_RCVBUF)
socket.request.max.bytes        套接字服务器将接受的请求的最大大小(防止OOM)
log.dirs        日志文件目录。
num.partitions  partition数量。
num.recovery.threads.per.data.dir       在启动时恢复日志、关闭时刷盘日志每个数据目录的线程的数量,默认1。
offsets.topic.replication.factor        偏移量话题的复制因子(设置更高保证可用),为了保证有效的复制,偏移话题的复制因子是可配置的,在偏移话题的第一次请求的时候可用的broker的数量至少为复制因子的大小,否则要么话题创建失败,要么复制因子取可用broker的数量和配置复制因子的最小值。
log.retention.hours 日志文件删除之前保留的时间(单位小时),默认168
log.segment.bytes   单个日志文件的大小,默认1073741824
log.retention.check.interval.ms 检查日志段以查看是否可以根据保留策略删除它们的时间间隔。
zookeeper.connect   ZK主机地址,如果zookeeper是集群则以逗号隔开。
zookeeper.connection.timeout.ms     连接到Zookeeper的超时时间。

创建log目录

mkdir -p /opt/data/kafka/logs

五、启动、验证ZK集群

(1)启动

在三个节点依次执行:

cd /usr/local/kafka_2.11-2.0.0/
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
(2)验证

查看ZK配置

下载nmap

yum install nmap

echo conf | nc 127.0.0.1 2181
显示如下为成功
clientPort=2181
dataDir=/opt/data/zookeeper/data/version-2
dataLogDir=/opt/data/zookeeper/logs/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=1
initLimit=20
syncLimit=10
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0

查看ZK状态

 echo stat |nc 127.0.0.1 2181

 

显示以下内容为成功
Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 00:39 GMT
Clients:
 /127.0.0.1:51876[0](queued=0,recved=1,sent=0)
​
Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4

查看端口

lsof -i:2181
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    15002 root   98u  IPv4  43385      0t0  TCP *:eforward (LISTEN)

六、启动、验证Kafka

(1)启动

在三个节点依次执行:

cd /usr/local/kafka_2.11-2.0.0/
​​​​​​​
nohup bin/kafka-server-start.sh config/server.properties &
(2)验证

在10.12.153.200上创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopic

Created topic "testtopic".

查询10.12.153.200上的topic

bin/kafka-topics.sh --zookeeper 10.12.153.200:2181 --list 
              
testtopic

查询10.12.153.201上的topic

bin/kafka-topics.sh --zookeeper 10.3.145.42:2181 --list 
​​​​​​​
testtopic

查询10.12.153.202上的topic

bin/kafka-topics.sh --zookeeper 10.3.145.43:2181 --list 
​​​​​​​
testtopic

模拟消息生产和消费 发送消息到10.12.153.200

bin/kafka-console-producer.sh --broker-list 10.3.145.41:9092 --topic testtopic 
​​​​​​​ 
>Hello World!

从10.12.153.201接受消息

bin/kafka-console-consumer.sh --bootstrap-server  10.3.145.41:9092 --topic testtopic --from-beginning 
​​​​​​​
Hello World!
扩展
7、监控 Kafka Manager

Kafka-manager 是 Yahoo 公司开源的集群管理工具。

可以在 Github 上下载安装:GitHub - yahoo/CMAK: CMAK is a tool for managing Apache Kafka clusters

亿级 ELK 日志平台构建实践

如果遇到 Kafka 消费不及时的话,可以通过到具体 cluster 页面上,增加 partition。Kafka 通过 partition 分区来提高并发消费速度

亿级 ELK 日志平台构建实践

希望能够帮助到大家!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day08_面向对象基础_内存关系

零、今日内容 一、作业 二、面向对象 一、作业 package com.qf.homework;import java.util.Arrays;/*** --- 天道酬勤 ---** author QiuShiju* date 2024/2/28* desc*/ public class Homework {public static void main(String[] args) {test();}//写一个方法 用于合并两个int…

golang 泛型详解

目录 概念 ~int vs .int 常见的用途和错误 结论: 概念 Go 在1.18 中添加了泛型,这样Go 就可以在定义时不定义类型,而是在使用时进行类型的定义,并且还可以在编译期间对参数类型进行校验。Go 目前只支持泛型方法,还…

无源蜂鸣器驱动实验

1.原理 计划是,生成不同的7个频率控制蜂鸣器发声,每个音调发声0.5秒。 50MHZ计数0.5秒,50MHZ一个周期20ns,要计数0.5秒 ,0.5/0.000_000_02s25000_000个时钟周期。因为是从0开始计数,所以计数的最大值是0-24…

docker版本 jenkins配置gitlab自动部署

前端项目 Build steps pwd npm config set registry https://registry.npm.taobao.org npm -v node -v #npm install npm run build:prod tar -czvf QASystem.tar.gz distpwd cd /data/zhouxy37/vue_deploy tar -zxvf QASystem.tar.gz sudo mv dist QASystem cp -r QASyste…

K8S常用kubectl命令汇总(持续更新中)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

NGINX的重写与反向代理机制解析

目录 引言 一、重写功能 (一)if指令 1.判断访问使用的协议 2.判断文件 (二)return指令 1.设置返回状态码 2.返回指定内容 3.指定URL (三)set指令 1.手动输入变量值 2.调用其它变量值为自定义变…

web学习笔记(二十二)DOM开始

目录 1.DOM简介 2.DOM树 3.DOM节点 4.查找DOM节点方法汇总 5.查找子结点的属性 5.1父子关系 5.2兄弟关系 6.几个特殊元素的查找 1.DOM简介 DOM(Document Object Model) 也叫页面文档对象模型,是W3C组织推荐的处理可扩展标记语言(HTML…

蓝桥杯第十二届电子类单片机组程序设计

目录 前言 蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课(点击查看) 单片机资源数据包_2023(点击下载) 一、第十二届比赛原题 1.比赛题目 2.题目解读 蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客 二、…

TV-SAM 新型零样本医学图像分割算法:GPT-4语言处理 + GLIP视觉理解 + SAM分割技术

TV-SAM 新型零样本医学图像分割算法:GPT-4语言处理 GLIP视觉理解 SAM分割技术 提出背景TV-SAM 方法论 提出背景 论文:https://arxiv.org/ftp/arxiv/papers/2402/2402.15759.pdf 代码:https://github.com/JZK00/TV-SAM 利用了GPT-4的强大语…

深入理解Spring Security

第1章:Spring Security简介 大家好,我是小黑,在谈到网站安全的时候,Spring Security是个避不开的话题。它就像是个守门员,决定谁能进入我们的网站,又能在网站的哪些角落里走动。简单来说,Sprin…

语音合成(TTS) GPT-SoVITS认知

写在前面 小伙伴推荐,简单了解相对之前试过的其他的TTS项目,GPT-SoVITS的优点简单易用,文档完整,默认的模型效果就很好理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候…

智能驾驶控制规划理论学习02-基于搜索的路径规划算法

目录 一、路径搜索问题 二、图论基础 三、图搜索方法 1、广度优先搜索(BFS) bfs与dfs的区别 bfs的搜索过程 bfs的算法实现 2、迪杰斯特拉算法(Dijkstra) 核心思想 优先级队列 Dijkstra搜索过程 Dijkstra优缺点…

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下: -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…

前端mock数据 —— 使用Apifox mock页面所需数据

前端mock数据 —— 使用Apifox 一、使用教程二、本地请求Apifox所mock的接口 一、使用教程 在首页进行新建项目: 新建项目名称: 新建接口: 创建json: 请求方法: GET。URL: api/basis。响应类型&#xff1…

用Flutter开发App:助力您的移动业务腾飞

一、Flutter简介 Flutter是Google推出的用于构建多平台应用程序的开源UI框架。它使用Dart语言编写,可以编译为原生机器代码,从而提供卓越的性能和流畅的用户体验。 二、Flutter的优势 一套代码,多平台部署:Flutter可以使用一套代…

183896-00-6,Biotin-C3-PEG3-C3-NH2,可以选择性降解靶蛋白

您好,欢迎来到新研之家 文章关键词:183896-00-6,Biotin-C3-PEG3-C3-NH2,Biotin-C3-PEG3-C3-amine,生物素-C3-PEG3-C3-胺 一、基本信息 【产品简介】:Biotin-PEG3-C3-NH2是一种PROTAC linker,…

Redis在中国火爆,为何MongoDB更受欢迎国外?

一、概念 Redis Redis(Remote Dictionary Server)是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。Redis是由Salvatore Sanfilippo于2009年启动开发的,首个版本于同年5月发布。 MongoDB MongoDB…

Apache Bench(ab )压力测试

目录 参数说明示例1:压力测试示例2:测试post接口post数据文件该如何编写? apr_pollset_poll: The timeout specified has expired (70007)apr_socket_recv: Connection reset by peer (104)参考 参数说明 官方文档参考这里。 ab -c 100 -n …

JVM——JVM与Java体系结构

文章目录 1、Java及JVM简介1.1、Java是跨平台的语言1.2、JVM是跨语言的平台 2、Java发展里程碑3、Open JDK和Oracle JDK4、虚拟机与JVM4.1、虚拟机4.2、JVM 5、JVM整体结构6、Java代码执行流程7、JVM的架构模型7.1、基于栈式架构的特点7.2、基于寄存器架构的特点 8、JVM的生命周…

使用pytorch实现一个线性回归训练函数

使用sklearn.dataset 的make_regression创建用于线性回归的数据集 def create_dataset():x, y, coef make_regression(n_samples100, noise10, coefTrue, bias14.5, n_features1, random_state0)return torch.tensor(x), torch.tensor(y), coef 加载数据集,并拆分…