惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
F
Fortinet All Blogs
H
Heimdal Security Blog
S
Schneier on Security
L
LangChain Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
J
Java Code Geeks
博客园 - 【当耐特】
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
I
InfoQ
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CERT Recently Published Vulnerability Notes
T
Tenable Blog
腾讯CDC
C
Check Point Blog
量子位
M
MIT News - Artificial intelligence
GbyAI
GbyAI
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
小众软件
小众软件
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
V2EX - 技术
V2EX - 技术
T
Threatpost
Engineering at Meta
Engineering at Meta
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
S
Securelist
The Cloudflare Blog
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿

远哥制造

2024 年终总结 2023 年终总结 2022 年终总结 「升级千兆家宽 & 割接 2.5G 内网」引发的“血案” 重装系统之 cn-tx-bj6-c8 换至 Docker 基础镜像 Apache Kafka Producer Benchmark Elasticsearch Bulk 调优(二) 良心云 CentOS 学生机切换 RHEL 记一次 Kafka 未增大文件描述符限制的翻车经历 IPv6 + V2Ray 实现在外回无公网 IP 的家 静态路由简析 PY 云新增 cn-py-dl-r8 虚拟机 一些关于代码量的统计方法 VMware vCenter 安装 RHEL 8 【AIoT应用创新大赛】基于 EVB_AIoT 的 EIQ 学习笔记 腾讯 TencentOS tiny 官方定制 IoT 开发板 EVB_AIoT VMware vCenter 安装 AlmaLinux 8 希捷 Seagate 机械 ST500LT012-1DG142 翻车记 上古神船也要物尽其用之安装 VMware ESXi 6.7
Apache Kafka 单机版安装(RHEL 8 / Ubuntu 20.04)
yuangezhizao · 2022-06-09 · via 远哥制造

Apache Kafka 单机版安装(RHEL 8 / Ubuntu 20.04)

Monterry 12.4 (21F79) 102.0.5005.61 Stable 新家 143

没想到最后把手里内存足够的机子都装了个遍.jpG

0x00.前言

为了之后的性能测试,不得不在各个平台上都装一份,以便进行横向对比

0x01.安装Java

Kafka的运行依赖于Java虚拟机,后者可以直接从各大包管理工具安装,非常方便,并不需要手动下载,再解压配置环境变量之类的……

1.基于RHEL 8系统

Kafka 3.0.0版本起,The deprecation of support for Java 8 and Scala 2.12,于是选择安装openjdk 11

1
2
3
4
5
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
openjdk version "11.0.15" 2022-04-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.15+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+10-LTS, mixed mode, sharing)

2.基于Ubuntu 20.04系统

这里只列出命令,就不再赘述了

1
2
3
4
5
ubuntu@cn-tx-bj6-u0:~$ sudo apt install openjdk-11-jdk
ubuntu@cn-tx-bj6-u0:~$ java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

0x02.安装Kafka

截至目前,最新版本是3.2.0,然后Scala2.122.13的,这里选择官方推荐的后者,即kafka_2.13-3.2.0.tgz

1.基于RHEL 8系统

和安装Java不同,需要手动下载预编译包,再解压并创建单元文件

1
2
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]

创建KafkaZookeeper的自定义数据目录,虽然本文并未实际使用到这些目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 kafka]
[root@cn-py-dl-r8 kafka]
[root@cn-py-dl-r8 kafka]
[root@cn-py-dl-r8 kafka]
[root@cn-py-dl-r8 kafka]
.
├── kafka-logs
└── zookeeper
├── data
│   └── myid
└── logs

4 directories, 1 file

创建Zookeeper的单元文件,虽然官方计划后续去掉Zookeeper,但现在还是得用到它

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@cn-py-dl-r8 ~]
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/bin/bash /root/kafka_2.13-3.2.0/bin/zookeeper-server-start.sh /root/kafka_2.13-3.2.0/config/zookeeper.properties
ExecStop=/bin/bash /root/kafka_2.13-3.2.0/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

创建Kafka的单元文件,在环境变量中设定了JMX_PORT=9988,并增大LimitNOFILE=65535

LimitNOFILE=65535的原因见:记一次 Kafka 未增大文件描述符限制的翻车经历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@cn-py-dl-r8 ~]
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service

[Service]
Type=simple
User=root
Group=root
Environment=JMX_PORT=9988
ExecStart=/bin/bash /root/kafka_2.13-3.2.0/bin/kafka-server-start.sh /root/kafka_2.13-3.2.0/config/server.properties
ExecStop=/bin/bash /root/kafka_2.13-3.2.0/bin/kafka-server-stop.sh
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

2.基于Ubuntu 20.04系统

点击此处 ← 查看折叠
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ubuntu@cn-tx-bj6-u0:~$ wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
ubuntu@cn-tx-bj6-u0:~$ tar -zxvf kafka_2.13-3.2.0.tgz
ubuntu@cn-tx-bj6-u0:~$ mkdir kafka
ubuntu@cn-tx-bj6-u0:~$ cd kafka
ubuntu@cn-tx-bj6-u0:~/kafka$ mkdir kafka-logs
ubuntu@cn-tx-bj6-u0:~/kafka$ mkdir -p zookeeper/data
ubuntu@cn-tx-bj6-u0:~/kafka$ echo 0 > zookeeper/data/myid
ubuntu@cn-tx-bj6-u0:~/kafka$ mkdir -p zookeeper/logs
ubuntu@cn-tx-bj6-u0:~$ sudo vim /etc/systemd/system/zookeeper.service
ubuntu@cn-tx-bj6-u0:~$ cat /etc/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/bin/bash /home/ubuntu/kafka_2.13-3.2.0/bin/zookeeper-server-start.sh /home/ubuntu/kafka_2.13-3.2.0/config/zookeeper.properties
ExecStop=/bin/bash /home/ubuntu/kafka_2.13-3.2.0/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
ubuntu@cn-tx-bj6-u0:~$ sudo vim /usr/lib/systemd/system/kafka.service
ubuntu@cn-tx-bj6-u0:~$ cat /usr/lib/systemd/system/kafka.service
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service

[Service]
Type=simple
User=root
Group=root
Environment=JMX_PORT=9988
ExecStart=/bin/bash /home/ubuntu/kafka_2.13-3.2.0/bin/kafka-server-start.sh /home/ubuntu/kafka_2.13-3.2.0/config/server.properties
ExecStop=/bin/bash /home/ubuntu/kafka_2.13-3.2.0/bin/kafka-server-stop.sh
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

0x03.安装CMAK

CMAK是一款雅虎开源的非常好用的Kafka图形化管理工具,用完之后再也不想用命令行了.jpG,需Java 11

CMAK (Cluster Manager for Apache Kafka, previously known as Kafka Manager)

1.基于RHEL 8系统

下载最新版本预编译包cmak-3.0.0.6.zip,修改配置文件conf/application.conf中的kafka-manager.zkhostscmak.zkhosts的值为localhost:2181

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 cmak-3.0.0.6]
[root@cn-py-dl-r8 cmak-3.0.0.6]
……


kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="localhost:2181"
cmak.zkhosts=${?ZK_HOSTS}
……

创建CMAK的单元文件,如果是手动解压的Java,需要在ExecStart中添加参数-java-home /root/jdk-11.0.15

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@cn-py-dl-r8 ~]
[Unit]
Description=kafka-manager server service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/root/cmak-3.0.0.6
ExecStart=/root/cmak-3.0.0.6/bin/cmak -Dconfig.file=/root/cmak-3.0.0.6/conf/application.conf
Restart=on-failure
RestartSec=60

[Install]
WantedBy=multi-user.target

2.基于Ubuntu 20.04系统

点击此处 ← 查看折叠
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ubuntu@cn-tx-bj6-u0:~$ wget https://github.com/yahoo/CMAK/releases/download/3.0.0.6/cmak-3.0.0.6.zip
ubuntu@cn-tx-bj6-u0:~$ unzip cmak-3.0.0.6.zip
ubuntu@cn-tx-bj6-u0:~$ cd cmak-3.0.0.6/
ubuntu@cn-tx-bj6-u0:~/cmak-3.0.0.6$ vim conf/application.conf
ubuntu@cn-tx-bj6-u0:~/cmak-3.0.0.6$ cat conf/application.conf
……


kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="localhost:2181"
cmak.zkhosts=${?ZK_HOSTS}
……
ubuntu@cn-tx-bj6-u0:~$ sudo vim /usr/lib/systemd/system/kafka-manager.service
ubuntu@cn-tx-bj6-u0:~$ cat /usr/lib/systemd/system/kafka-manager.service
[Unit]
Description=kafka-manager server service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/home/ubuntu/cmak-3.0.0.6
ExecStart=/home/ubuntu/cmak-3.0.0.6/bin/cmak -Dconfig.file=/home/ubuntu/cmak-3.0.0.6/conf/application.conf
Restart=on-failure
RestartSec=60

[Install]
WantedBy=multi-user.target

0x04.启动服务

Kafka依赖于Zookeeper,所以需要先启动Zookeeper再启动Kafka

1
2
3
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]
[root@cn-py-dl-r8 ~]

0x05.后记

是不是很简单?自己装了四台之后,对于Kafka的安装愈发熟练草……

0x06.引用

Confluent:在 Kafka 上飞驰的数据交换者
Kafka的安装与使用
Kafka集群优化篇-调整broker的堆内存(heap)案例实操
Kafka 两个高性价比的参数调优
Kafka性能调优
Kafka参数调优实战,看这篇文章就够了!
centos8平台使用iostat监控磁盘io
Kafka性能测试及分析
Kafka 高性能吞吐揭秘

本文创建于:2022年06月09日 13时50分01秒
第3次更新于:

转载请注明出处:https://www.yuangezhizao.cn/articles/java/Kafka/install.html


评论区已关闭 (╯‵□′)╯︵┻━┻