Kafka集群安装实施_Kafka2.5.0+Redhat7.5+Zookeeper

一、概述

1.1 Kafka概念描述

1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。

2)Kafka最初是由LinkedIn公司开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。

3)Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。

4)无论是kafka集群,还是consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。

1.2 Kafka集群

Kafka集群由多个Kafka Brokers组成。每个Kafka Broker都有一个唯一的ID(编号)。Kafka Brokers包含主题日志分区,如果希望获得故障处理能力,需要保证至少有三到五个服务器,Kafka集群最大可同时存在10,100或1,000个服务器。

Kafka集群是把状态保存在Zookeeper中的, Zookeeper集群的工作是超过半数才能对外提供服务,最低是三台的配置,3台中超过两台超过半数,允许1台挂掉。

Kafka集群部署也是至少需要3台服务器。此实施文档基于三台服务器来搭建,如图:

二 安装系统准备及规划

资源规划及注意事项

资源项

建议

注释

内存

推荐带有64GB RAM的系统,但是32GB的也可以正常使用。少于32GB往往效果不佳。此外,Kafka非常仔细地使用堆空间,不需要将堆大小设置为超过6GB。这将导致32GB的计算机上的文件系统缓存最多28-30GB。

32GB或以上

CPU

大多数Kafka部署通常对CPU要求不太严格。这样,处理器的设置比其他资源的重要性要小。但是,如果启用了SSL,则CPU要求可能会更高(确切的详细信息取决于CPU类型和JVM实现)。

最好选择具有多个内核的现代处理器。

如果您需要在更快的CPU或更多核心之间进行选择,请选择更多核心。多核提供的额外并发性将远远超过稍快的时钟速度。

多核CPU

存储

建议不要与应用程序日志或其他OS文件系统活动共享用于Kafka数据的相同驱动器,以确保良好的延迟。可以将这些驱动器组合到一个卷(RAID)中,也可以格式化并将每个驱动器安装为自己的目录。由于Kafka具有复制功能,因此RAID提供的冗余也可以在应用程序级别提供。这个选择有几个权衡。

1,如果配置多个数据目录,则代理将在路径中放置一个新分区,该分区中当前存储的分区数最少。每个分区将完全位于数据目录之一中。如果分区之间的数据平衡不佳,则可能导致磁盘之间的负载不平衡。

2,RAID在平衡磁盘之间的负载方面可能会做得更好,因为它可以在较低级别上平衡负载。RAID的主要缺点是减少了可用磁盘空间。RAID的另一个潜在好处是可以容忍磁盘故障。不建议使用RAID5或RAID6,因为会严重影响写入吞吐量,并且在较小程度上会降低磁盘故障时重建阵列的I / O成本(通常,重建成本适用于RAID,但是对于RAID6和RAID 5而言最糟糕)。

3,如果可以接受额外费用,则应使用RAID10。否则,请为您的Kafka服务器配置多个日志目录,每个目录都安装在单独的驱动器上。

4,应该避免使用网络附加存储(NAS)。NAS通常速度较慢,延迟较大,平均延迟偏差较大,并且是单点故障。

5,磁盘吞吐量(IOPS 每秒的读写次数)会影响生产者的性能。因为生产者的消息必须被提交到服务器保存,大多数的客户端都会一直等待,直到至少有一个服务器确认消息已经成功提交为止。也就是说,磁盘写入速度越快,生成消息的延迟就越低。

建议单独的存储,大小根据数据量而定,建议500GB,

网络

快速可靠的网络是分布式系统中必不可少的性能组件。低延迟确保节点可以轻松通信,而高带宽则有助于分片移动和恢复。现代数据中心网络(1 GbE,10 GbE)足以满足绝大多数群集的需求。

当然网络吞吐量决定了Kafka能够处理的最大数据流量。它和磁盘是制约Kafka拓展规模的主要因素。对于生产者、消费者写入数据和读取数据都要瓜分网络流量。同时做集群复制也非常消耗网络。

建议1GB及以上

文件系统

Kafka对文件系统没有特别的要求。常规的XFS, ext4, NTFS都可以运行Kafka。

Ext4 或者NTFS

服务器规划

主机名及IP规划

服务器名

IP

注释

prdserver1

192.168.88.115

Zookeeper server1

Kafka server1

prdserver2

192.168.88.117

Zookeeper server2

Kafka server2

prdserver3

192.168.88.119

Zookeeper server3

Kafka server3

操作系统版本

操作系统没有特别的要求,建议选用Linux较高版本,以减少触发Bug的几率。

操作系统版本

Red Hat Enterprise Linux Server release 7.5 (Maipo)

目录规划

项目

目录

权限

Zookeeper

/opt/zookeeper/

 

kafka

/opt/kafka

 

用户和组

用户

说明

zk

zk

zookeeper安装用户组

kafka

kafka

kafka安装用户组

三 安装

Zookeeper集群的安装

 由于选择的三台服务器作为zookeeper集群,因此接下来的安装步骤需要同时在三台服务器上执行。

JDK安装及基础环境准备

版本说明

从安全角度考虑,建议使用JDK 1.8的最新发行版,因为较早的免费版本已披露了安全漏洞。LinkedIn当前正在使用G1收集器运行JDK 1.8 u5(希望升级到较新版本)。LinkedIn的调整如下所示:

-Xmx6g -Xms6g -XX:MetaspaceSize=96m -XX:+UseG1GC

-XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M

-XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80

JDK下载及安装

jdk下载地址:

https://www.oracle.com/java/technologies/javase-downloads.html

#mkdir -p /usr/java

#mv /tmp/jdk-8u241-linux-x64.tar /usr/java

#tar  -zxvf  jdk-8u241-linux-x64.tar

#cd /usr/java/jdk1.8.0_241

#ls -l

total 25988

drwxr-xr-x. 2 10143 10143     4096 Dec 11 18:35 bin

-r--r--r--. 1 10143 10143     3244 Dec 11 18:35 COPYRIGHT

drwxr-xr-x. 3 10143 10143      132 Dec 11 18:35 include

-rw-r--r--. 1 10143 10143  5217333 Dec 11 15:41 javafx-src.zip

drwxr-xr-x. 5 10143 10143      185 Dec 11 18:35 jre

drwxr-xr-x. 5 10143 10143      245 Dec 11 18:35 lib

-r--r--r--. 1 10143 10143       44 Dec 11 18:35 LICENSE

drwxr-xr-x. 4 10143 10143       47 Dec 11 18:35 man

-r--r--r--. 1 10143 10143      159 Dec 11 18:35 README.html

-rw-r--r--. 1 10143 10143      424 Dec 11 18:35 release

-rw-r--r--. 1 10143 10143 21078837 Dec 11 18:35 src.zip

-rw-r--r--. 1 10143 10143   116400 Dec 11 15:41 THIRDPARTYLICENSEREADME-JAVAFX.txt

-r--r--r--. 1 10143 10143   169788 Dec 11 18:35 THIRDPARTYLICENSEREADME.txt

JDK环境变量配置

jdk部署目录

shell

说明

/usr/java/jdk1.8.0_241

vi /etc/profile

末尾添加

JAVA_HOME=/usr/java/jdk1.8.0_241

CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

PATH=$PATH:${JAVA_HOME}/bin

export JAVA_HOME CLASSPATH PATH

保存退出

source /etc/profile

若客户无特别说明,则jdk部署在/usr/java下(若无目录请创建)。

Jdk配置也可单独部署在zookeeper及kafka实施用户下,修改<user_home>/.bash_profile添加相同内容即可。

查看JDK版本

# java -version

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yangkei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值