kafka之二:手把手教你安装kafka2.8.0(绝对实用)
前面分享了kafka的基本知识,下面就要对kafka进行实操,先看如何安装。
kafka需要zookepper的支持,所以要安装kafka需要有zookeeper的环境,zookeeper安装请参见《zookeeper之二:zookeeper3.7.0安装完全指南(绝对实用)》。这里可以是一个单独的zookepper的环境也可以使用kafka集成的zookeeper环境,建议使用单独的zookeeper环境。本文以单独环境为例,集成环境请留言。
1、下载
kafka的官网地址是:http://kafka.apache.org/
从官网下载最新的kafka的安装包,如下图

这里选择二进制包进行安装,

我这里已经下载好Scala2.12版本的kafka安装包,

2、安装
2.1、单机版
2.1.1、环境
os:在虚拟机环境中的centos7-64进行安装。
zookeeper:zookeeper已经安装好,是3.7的版本。环境在本机:127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184
JDK:JDK环境已安装,是1.8的版本
2.1.2、修改配置文件
kafka的安装包解压后的目录结构如下,

bin目录下存放的是kafka的脚本文件,包括启动、停止、客户端、消费端等;
config目录下存放的是和配置相关的文件,包括客户端、消费端、服务器、zookeeper的配置等;
libs目录存放的是kafka启动用到的文件及依赖;
logs目录存放的是kafka的运行时日志文件;
了解完了kafka的文件目录,下面进行单机版kafka配置文件的修改。要修改的文件是config/server.properties文件,该文件比较长,这里就不贴了,看下几个必要的配置。这里有必要提下kafka的配置文件做的很好,有详细的解释还有例子。
broker.id broker的id或者编号,在集群中该编号必须唯一
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
listeners kafka服务器监听的端口,该端口也是对外提供服务的端口
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://192.168.117.128:9092
num.partitions topic下分区的数量
# The default number of log partitions per topic. More partitions allow greater
# parallelism for consumption, but this will also result in more files across
# the brokers.
num.partitions=1
log.dirs 消息的存放目录,这里看配置是日志的意思,因为kafka把消息使用日志的形式存储,所以这里不要和kafka的运行日志相混淆。
# A comma separated list of directories under which to store log files
log.dirs=/home/dev/datas/kafka_2.12-2.8.0/single
log.retentio.hours 消息保存的小时数
# The minimum age of a log file to be eligible for deletion due to age
log.retention.hours=168
default.replication.factor 消息的副本数量,这是kafka高可用、数据不丢失的关键
default.replication.factor=3
zookeeper.connect zookeeper的地址
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=localhost:2182/kafka,localhost:2183/kafka,localhost:2184/kafka
配置完上面的配置项后就可以启动单机版的kafka了
2.1.3、启动
有了上面的配置,现在启动kafka,在kafka的解压目录下执行,
bin/kafka-server-start.sh config/server.properties
执行后看到下面的日志打印,

看到是在前台启动的,有没有办法后台启动那,先停掉kafka,加上-daemon则使用守护线程在后台启动。
bin/kafka-server-start.sh -daemon config/server.properties

2.2、集群版
2.2.1、环境
集群版的环境和单机版的环境是一样的,需要zookeeper和JDK。由于集群版要求必须是2N+1台机器,我部署最少节点的集群,在虚拟机上起3个进程代表3台机器。
| IP | id | 端口 | 日志路径 |
| 本机 | 1 | 9093 |
/home/dev/datas/kafka_2.12-2.8.0/cluster/node1 |
| 本机 | 2 | 9094 |
/home/dev/datas/kafka_2.12-2.8.0/cluster/node2 |
| 本机 | 3 | 9095 |
/home/dev/datas/kafka_2.12-2.8.0/cluster/node3 |
2.2.2、修改配置文件
配置项和单机版的基本相同,选择在config下cluster文件夹,其下放置3个配置文件,

每个文件的内容可参考单机的,这里不再贴出。
关于日志路径也是要事先建好相应的目录。
2.2.3、启动
启动命令和单机的也是相同的,选择在后台启动,每次启动指定不同的配置文件,
[dev@localhost kafka_2.12-2.8.0]$ bin/kafka-server-start.sh -daemon config/cluster/server_node3.properties
3、测试
3.1、单机版测试
参见3.2集群版测试方法
3.2、集群版测试
3.2.1、通过查看进程的方式
使用jps命令查看进程
[dev@localhost kafka_2.12-2.8.0]$ jps
可以看到下面的打印

说明启动了三个kafka进程
3.2.2、使用客户端方式
使用kafka自带的客户端来创建一个topic
[dev@localhost kafka_2.12-2.8.0]$ bin/kafka-topics.sh --bootstrap-server 192.168.117.128:9093 --create --topic testKafka
看下图

说明创建成功,现在在另外一个节点上查看
[dev@localhost kafka_2.12-2.8.0]$ bin/kafka-topics.sh --bootstrap-server 192.168.117.128:9095 --list
看下图

可以看到刚才创建的testKafka这个topic。
有不正之处,欢迎指正。参考:
https://www.cnblogs.com/zhaoshizi/p/12154518.html
https://www.cnblogs.com/sandea/p/12078442.html

kafka之二:手把手教你安装kafka2.8.0(绝对实用)的更多相关文章
- 周一干货~手把手教你安装 Visual Studio 安卓模拟器
干货~手把手教你安装 Visual Studio 安卓模拟器 转 http://mini.eastday.com/mobile/171107134734194.html# 今天软妹为大家带来一篇来自M ...
- 手把手教你安装 FastAdmin 到虚拟主机 (phpStudy)
手把手教你安装 FastAdmin 到虚拟主机 (phpStudy)原文: https://forum.fastadmin.net/thread/2524 下载 FastAdmin下载 FastAdm ...
- **手把手教你安装 Anaconda + Tensor flow+Pycharm**
手把手教你安装 Anaconda + Tensor flow+Pycharm 这篇博文主要讲一下自己安装Anaconda + Tensor flow + Pycharm 的一个过程. 1. ANACO ...
- 【转载】手把手教你使用Git(简单,实用)
手把手教你使用Git(简单,实用) 标签: git 2016年04月21日 20:51:45 1328人阅读 评论(0) 收藏 举报 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. ...
- 手把手教你撸个vue2.0弹窗组件
手把手教你撸个vue2.0弹窗组件 在开始之前需要了解一下开发vue插件的前置知识,推荐先看一下vue官网的插件介绍 预览地址 http://haogewudi.me/kiko/inde... 源码地 ...
- Linux环境搭建 | 手把手教你安装Linux虚拟机
前言 作为一名Linux工程师,不管是运维.应用.驱动方向,在工作中肯定会需要Linux环境.想要获得Linux环境,一个办法就是将电脑系统直接换成Linux系统,但我们平常用惯了Windows系统, ...
- Windows7下面手把手教你安装Django
我所使用的操作系统是Windows7,内存是2G 在搜索了一些资料发现,对于Django的安装,详细的真的很少,都说的很简化,然而,这篇blog可以手把手教你成功安装Django 对于Django的详 ...
- Windows7下面手把手教你安装Django - Hongten
我所使用的操作系统是Windows7,内存是2G 在搜索了一些资料发现,对于Django的安装,详细的真的很少,都说的很简化,然而,这篇blog可以手把手教你成功安装Django 对于Django的详 ...
- Linux从入门到放弃、零基础入门Linux(第三篇):在虚拟机vmware中安装linux(二)超详细手把手教你安装centos6分步图解
一.继续在vmware中安装centos6.9 本次安装是进行最小化安装,即没有图形化界面的安装,如果是新手,建议安装带图形化界面的centos, 具体参考Linux从入门到放弃.零基础入门Linux ...
随机推荐
- Unity 协程(Coroutine)原理与用法详解
前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式 为啥在 ...
- POJ 2516 基础费用流
题意 有n个顾客,m个供应商,k种货物,给你顾客对于每种货物的要求个数,和供应商对于每种货物的现有量,以及供应每种货物的时候供应商和顾客之间的运输单价,问你满足所有顾客的前提下的最小运输费 ...
- 易酷CMS2.5本地文件包含漏洞复现
易酷CMS是一款影片播放CMS.该CMS2.5版本存在本地文件包含漏洞.我们可以利用这个漏洞,让其包含日志文件,然后再利用报错信息将一句话木马写入日志中.然后利用文件包含漏洞包含该日志文件,再用菜刀连 ...
- Win64 驱动内核编程-31.枚举与删除映像回调
枚举与删除映像回调 映像回调可以拦截 RING3 和 RING0 的映像加载.某些游戏保护会用此来拦截黑名单中的驱动加载,比如 XUETR.WIN64AST 的驱动.同理,在反游戏保护的过程中,也可以 ...
- 谷歌浏览器安装Vue.js devtools
第一步:访问谷歌商店 在之前的博客中已经谈到了这一点的实现方式 https://www.cnblogs.com/10134dz/p/13552777.html 第二步:下载Vue.js devtool ...
- 基于ray的分布式机器学习(二)
基本思路:基于parameter server + multiple workers模式.同步方式:parameter server负责网络参数的统一管理,每次迭代均将参数发送给每一个worker,多 ...
- 基于texlive定制chemfig化学式转换Python服务镜像
chemfig 据别人介绍,在绘制平面分子式,乃至化学反应式.机理图时,大家使用的基本都是ChemDraw.当然ChemDraw是一款强大的软件,无论是平面的还是立体的分子结构式都能毫不费力地绘制出来 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2)
A. Prison Break 题意:就是在一个n*m的矩阵中,以(1,1)为起点(n,m)为终点,每个点以每个单位1s的速度移动,问总共至少需要多少秒,所有的矩阵点就能够全部移动到(r,c)中 思路 ...
- sscanf的应用
1.提取字符串 2.提取指定长度的字符串 3.提取指定字符为止的字符串 4.取仅包含指定字符集的字符串 5.取到指定字符集为止的字符串 #include <stdio.h> int mai ...
- 【近取 Key】Alpha - v1.0 测试报告
Bug 前端 主页.登录.注册.导航 bug说明 修复方法 修复结果 导航栏有时不显示用户姓名 修改用户信息的获取逻辑与存储方式 成功 展示词图界面导航栏居右失败 在组件中增加自适应相关设置 成功 用 ...