02.Kafka部署安装

1 Linux 安装 Kafka

1.1 安装前的环境准备

        由于 Kafka 是用 Scala 语言开发的,运行在 JVM 上,因此在安装Kafka之前需要先安装JDK。

yum install java-1.8.0-openjdk* -y

        kafka 依赖 zookeeper,所以需要先安装 zookeeper。

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz

        解压归档包。

tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz cd apache-zookeeper-3.5.8-bin

        复制配置文件。

cd apache-zookeeper-3.5.8-bin
cp conf/zoo_sample.cfg conf/zoo.cfg

        启动 zookeeper Server。

cd apache-zookeeper-3.5.8-bin
bin/zkServer.sh start

        启动客户端 zookeeper  Client。

cd apache-zookeeper-3.5.8-bin
bin/zkCli.sh

        查看zk的根目录相关节点

ls / 

1.2 Kafka 安装

1.2.1 下载安装包

        下载2.4.1 release版本,并解压:

wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz

        2.11是scala的版本,2.4.1是kafka的版本。

        解压归档包。

tar -xzf kafka_2.11-2.4.1.tgz
1.2.2 修改配置
cd kafka_2.11-2.4.1
#修改配置文件
vim config/server.properties

        修改如下配置内容。

#broker.id属性在kafka集群中必须要是唯一
broker.id=0
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT:192.168.31.162:9092  
#kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=192.168.31.162:2181
1.2.2.1 server.properties核心配置

Property

Default

Description

broker.id

0

每个broker都可以用一个唯一的非负整数id进行标识;这个id可以作为broker的“名字”,你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。

log.dirs

/tmp/kafka-logs

kafka存放数据的路径。这个路径并不是唯一的,可以是多个,路径之间只需要使用逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进行。

listeners

PLAINTEXT://192.168.31.192:9092

server接受客户端连接的端口,ip配置kafka本机ip即可。

zookeeper.connect

localhost:2181

zooKeeper连接字符串的格式为:hostname:port,此处hostname和port分别是ZooKeeper集群中某个节点的host和port;zookeeper如果是集群,连接方式为 hostname1:port1, hostname2:port2, hostname3:port3。

log.retention.hours

168

每个日志文件删除之前保存的时间。默认数据保存时间对所有topic都一样。

num.partitions

1

创建topic的默认分区数

default.replication.factor

1

自动创建topic的默认副本数量,建议设置为大于等于2

min.insync.replicas

1

当producer设置acks为-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),如果这个数目没有达到,producer发送消息会产生异常

delete.topic.enable

false

是否允许删除主题

1.2.3 启动 Kafka 服务

        现在来启动kafka服务:启动脚本语法

kafka-server-start.sh [-daemon] server.properties

        可以看到,server.properties 的配置路径是一个强制的参数,-daemon 表示以后台进程运行,否则ssh客户端退出后,就会停止服务。(注意,在启动kafka时会使用linux主机名关联的ip地址,所以需要把主机名和linux的ip映射配置到本地host里,用vim /etc/hosts)。

        启动kafka。

cd kafka_2.11-2.4.1
#后台启动,不会打印日志到控制台
bin/kafka-server-start.sh -daemon config/server.properties
#会在控制台打印日志
bin/kafka-server-start.sh config/server.properties &

        进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树。

bin/zkCli.sh 
#查看zk的根目录kafka相关节点 
ls / 
#查看kafka节点
ls /brokers/ids 
#停止kafka 
bin/kafka-server-stop.sh

2 Docker 安装 Kafka 

2.1 安装运行 zookeeper

        搜索 zookeeper 镜像。

docker search zookeeper

        拉取镜像。

docker pull zookeeper

        启动 zookeeper 容器。

docker run -d --name zookeeper -p 2181:2181 zookeeper

        查看容器。

docker ps

        可以看到,zookeeper 容器已经启动。

2.2 安装运行 Kafka

         搜索 kafka镜像。

docker search kafka

        拉取镜像。

docker pull bitnami/kafka

         启动 Kafka 容器。 

docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper \
-v /usr/kafka/config/server.properties:/config/server.properties \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 bitnami/kafka 

         查看容器。

        进入 zookeeepr 容器,查看节点信息。

docker exec -it 80bf /bin/bash

        启动客户端。 

bin/zkCli.sh

        查看节点状态。 

3 Kafka 集群环境

3.1 Linux Kafak集群

        对于 kafka 来说,一个单独的 broker 意味着 kafka 集群中只有一个节点。要想增加 kafka 集群中的节点数量,只需要多启动几个 broker 实例即可。为了有更好的理解,现在我们在一台机器上同时启动三个broker实例。

        首先,建立好其他 2 个broker的配置文件:

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties

        配置文件的需要修改的内容分别如下:

        config/server-1.properties:

#broker.id属性在kafka集群中必须要是唯一
broker.id=1
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://192.168.31.162:9093   
log.dir=/usr/local/data/kafka-logs-1
#kafka连接zookeeper的地址,要把多个kafka实例组成集群,对应连接的zookeeper必须相同
zookeeper.connect=192.168.31.162:2181

        config/server-2.properties:

#broker.id属性在kafka集群中必须要是唯一
broker.id=2
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://192.168.31.162:9093   
log.dir=/usr/local/data/kafka-logs-1
#kafka连接zookeeper的地址,要把多个kafka实例组成集群,对应连接的zookeeper必须相同
zookeeper.connect=192.168.31.162:2181

        目前我们已经有一个zookeeper实例和一个broker实例在运行了,现在只需要在启动2个broker实例即可:

bin/kafka-server-start.sh -daemon config/server-1.properties
bin/kafka-server-start.sh -daemon config/server-2.properties

        查看zookeeper确认集群节点是否都注册成功:

3.2 Docker Kafka集群

        Docker 搭建 Kafka 集群,我们只需启动三个容器。

docker run -d --name kafka0 -p 9092:9092 --link zookeeper:zookeeper \
-v /usr/kafka/config/server.properties:/config/server.properties \
-e KAFKA_BROKER_ID=0 \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.31.193:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-t bitnami/kafka

docker run -d --name kafka1 -p 9093:9093 --link zookeeper:zookeeper \
-v /usr/kafka/config/server.properties:/config/server.properties \
-e KAFKA_BROKER_ID=1 \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.31.193:9093 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 \
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-t bitnami/kafka
docker run -d --name kafka1 -p 9094:9094 --link zookeeper:zookeeper \
-v /usr/kafka/config/server.properties:/config/server.properties \
-e KAFKA_BROKER_ID=2 \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.31.193:9094 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 \
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-t bitnami/kafka

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

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

相关文章

LLM优化:开源星火13B显卡及内存占用优化

1. 背景 本qiang~这两天接了一个任务,部署几个开源的模型,并且将本地经过全量微调的模型与开源模型做一个效果对比。 部署的开源模型包括:星火13B,Baichuan2-13B, ChatGLM6B等 其他两个模型基于transformers架构封装&#xff0…

表单提交出现问题却没有报错

最近搞毕设提交表单传给后台总是出现错误,有时候可以运行成功,有时候运行不了但是没有报错,以为是jQuery导入的问题尝试换了jQuery的其他导入方式没有解决,后来发现前端页面的表单要防止默认操作!!&#xf…

qt学习篇---C++基础学习

本学习笔记学习下面视频总结,感兴趣可以去学习。讲的很详细 【北京迅为】嵌入式学习之QT学习篇_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1tp4y1i7EJ/?spm_id_from333.337.search-card.all.click&vd_source8827cc0da16223b9f2ad8ae7111de9e2 目录 C…

PDCA循环:持续精进的工具

文章目录 一、什么是PDCA二、PDCA的应用场景三、PDCA在信息系统项目管理中的应用 一、什么是PDCA PDCA循环是由美国质量管理专家沃特阿曼德休哈特(Walter A. Shewhart)在20世纪30年代提出的,最初用于制造业的质量管理。休哈特博士在构想PDCA…

【C++题解】1418. 求一个5位数的各个位之和

问题:1418. 求一个5位数的各个位之和 类型:基本运算、拆位求解 题目描述: 从键盘读入一个 5 位的正整数,请求出这个 5 位数的各个位之和。 输入: 一个 5 位的正整数 n 。 输出: 这个 5 位数的各个位之…

Aiseesoft Blu-ray Player for Mac:蓝光播放器

Aiseesoft Blu-ray Player for Mac是一款功能强大且易于使用的蓝光播放器,专为Mac用户打造。它以其卓越的性能和简洁的操作界面,为用户带来了全新的高清蓝光播放体验。 Aiseesoft Blu-ray Player for Mac v6.6.50激活版下载 这款软件支持播放任何高质量的…

ArcGIS Pro3.0软件破解版安装教程

软件名称:ArcGIS Pro 3.0 安装环境:Windows 软件大小:7.3GB 硬件要求:CPU2GHz,内存4G(或更高) 百度云下载链接 : https://pan.baidu.com/s/1CXy1MSwdQXdVnJoV2X422A 提 取 码 :r0w1 教学内…

AI图书推荐:ChatGPT写论文的流程与策略

论文一直是任何学术学位的顶峰。它展示了学生在研究领域的兴趣和专业知识。撰写论文也是一个学习经验,为学术工作以及专业研究角色做好准备。但是,论文工作总是艰苦的,通常是充满乐趣和创造性的,但有时也是乏味和无聊的。生成式人…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

采用前后端分离Vue,Ant-Design技术开发的(手麻系统成品源码)适用于三甲医院

开发环境 技术架构:前后端分离 开发语言:C#.net6.0 开发工具:vs2022,vscode 前端框架:Vue,Ant-Design 后端框架:百小僧开源框架 数 据 库:sqlserver2019 系统特性 麻zui、护理、PACU等围术期业务全覆…

FreeRTOS学习——FreeRTOS队列(上)

本篇文章记录我学习FreeRTOS队列的相关知识,主要包括队列简介、队列的结构体、队列创建等知识。 队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。…

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time 问题描述解决办法方式一方式二 小结 问题描述 在Android应用开发过程中,经常需要自定义控件,并且定义控件的属性,方便灵活的修改控件的显示样式,提…

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法: 1、第一种写法 写一个class属性,然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果:字体大小 查看效果 证明这样添加样式是没有问题的…

【提示学习论文】PMF:Efficient Multimodal Fusion via Interactive Prompting论文原理

Efficient Multimodal Fusion via Interactive Prompting(CVPR2023) 基于交互式提示的高效多模态融合方法减少针对下游任务微调模型的计算成本提出模块化多模态融合架构,促进不同模态之间的相互交互将普通提示分为三种类型,仅在单…

websocket 单点通信,广播通信

Websocket协议是对http的改进,可以实现client 与 server之间的双向通信; websocket连接一旦建立就始终保持,直到client或server 中断连接,弥补了http无法保持长连接的不足,方便了客户端应用与服务器之间实时通信。 参…

大数据005-hadoop003-了解MR及Java的简单实现

了解MapReduce MapReduce过程分为两个阶段:map阶段、reduce阶段。每个阶段搜键-值对作为输入和输出。 要执行一个MR任务,需要完成map、reduce函数的代码开发。 Hellow World 【Hadoop权威指南】中的以分析气象数据为例,找到每年的最高气温。…

Jenkins持续化集成

优质博文:IT-BLOG-CN 工作过程如下环境准备 开发人员提交代码>jenkins获取代码>调用单元测试>打包>发布 环境准备Jenkins的安装 Tomcat、Maven、Git或Svn、Jdk Jenkins的安装 1、官网下载war :http://Jenkins-ci.org/ 2、tomcat-users.…

NTFS文件权限管理

实验环境 windows server 2016 实验要求 实验步骤 1、 新建文件 2、打开文件夹的属性->安全->高级 3、禁用继承 4、添加组或用户 技术资料: 常用软件: 手机端项目: 电脑端项目: 公司制度: 销售资源&#xff…

【Scala---01】Scala『 Scala简介 | 函数式编程简介 | Scala VS Java | 安装与部署』

文章目录 1. Scala简介2. 函数式编程简介3. Scala VS Java4. 安装与部署 1. Scala简介 Scala是由于Spark的流行而兴起的。Scala是高级语言,Scala底层使用的是Java,可以看做是对Java的进一步封装,更加简洁,代码量是Java的一半。 因…

JAVA读取从WPS在Excel中嵌入的图片资源

读取从WPS在Excel中嵌入的图片资源 引言 许多数据文件中可能包含嵌入式图片,这些图片对于数据分析和可视化非常重要。然而,从 WPS 在 Excel 中读取这些图片可能会有一些技术挑战。在本文中,我将展示如何从 WPS Excel 文件中读取嵌入的图片&am…