在阿帕奇卡夫卡集群中划分冷热数据层以实现最佳性能
扫描二维码
随时随地手机看文章
起初,数据分层是存储系统用来降低数据存储成本的一种策略。这涉及到将常常无法访问的数据分组到更经济有效的存储数组选择中。例如,闲置一年或更长时间的数据可能会从昂贵的闪存层转移到更便宜的SATA磁盘层。即使它们非常昂贵,SSDS和闪存也可以归类为高性能存储类。主动使用并需要最大性能的较小数据集通常存储在闪存中。
云数据分集技术在客户寻求将数据分集或归档到公共云的替代选项时获得了流行。公共云目前提供了一个混合的对象和文件存储选项。对象存储类,如亚马逊S3和天蓝球(天蓝存储)提供了显著的成本效率和所有的好处,而没有复杂的设置和管理。
"热"数据和"冷"数据可以从多个节点卡夫卡集群的角度来看待。进入卡夫卡主题的数据和到达下游应用程序的快速检索,作为通过各种数据管道后的最终输出,可以被称为"热"数据。例如,从炼油厂使用的各种关键设备中获得的微循环传感器事件。类似地,下游应用程序不经常访问的输入到卡夫卡主题中的数据可以被称为"冷"数据。作为"冷"数据的一个例子,我们可以考虑电子商务应用中的库存更新,吸收产品数量等。来自第三方仓库系统。冷数据可以从集群转移到成本效益高的存储解决方案。
在根据下游应用程序的需求将数据分类为卡夫卡主题之后,我们可以将数据层指定为 热层 关于热数据和 冷层 卡夫卡集群中的冷数据。高性能的存储选项,如NVME(非易失性内存快速处理器)或SSDS(固态驱动器),可以用于热数据层,因为需要快速检索数据。类似地,可扩展的云存储服务,如亚马逊S3,可以用于冷层。历史数据和不经常访问的数据被确定为冷数据是理想的冷层。当然,卡夫卡主题所包含的数据量以及保留期也是选择云存储的决定因素。
卡夫卡主题的基本执行程序
热数据层
如上所述,SSD或NVME是用于热数据层和用于冷数据层的可伸缩云存储的;同样的可以在卡夫卡的 服务、财产 文件。主题配置有一个默认设置 服务、财产 文件,在每个主题的基础上覆盖它的选项。如果没有为某一专题提供具体的值,则在 服务、财产 文件将被使用。不过,使用--config 选项,我们可以覆盖在 服务、财产 文件。
在此场景中,我们希望创建的主题应该将热层数据存储在一个目录中,该目录中的位置应该位于提供高速接入的存储设备上,例如SSDS或NVME设备。
作为第一步,我们应该禁用 服务、财产 文件。默认情况下,卡夫卡会自动创建不存在的主题。然而,在分层存储场景中,最好是禁用自动主题创建,以保持对主题配置的更大控制。我们需要在 服务、财产 文件。
· #禁用自动主题创建
auto.create.topics.enable=false
在第二步,更新log.dirs 酒店具有一个位置到提供高速接入的存储设备。
log.dirs=/path/to/SSD or / NVMe devices for hot tier
最后,使用--config 选项在服务器.属性文件。
topic.config.my_topic_for_hot_tier= log.dirs=/path/to/SSD or NVMe devices for hot tier
我们可能需要调整其他的键值对 服务、财产 根据我们独特的用例和诸如log.retention.hours ,default.replication.factor ,以及log.segment.bytes .
冷数据层
如上所述,可扩展的云存储服务,如亚马逊S3,可以用于冷层。在卡夫卡中有两种配置冷层的选项。一个是使用融合器内置的亚马逊S3接收器连接器,另一个是在卡夫卡的网站上配置亚马逊S3桶。 服务、财产 文件。
亚马逊S3接收器连接器从阿帕奇卡夫卡主题导出数据到S3对象,无论是用avro格式、JSON格式还是字节格式。它定期从卡夫卡进行民意测验,然后将数据上传到S3。在从指定的主题中消费记录并将它们组织到不同的分区之后,亚马逊S3接收器连接器从每个分区向一个文件发送成批的记录,然后将这些记录上传到S3桶中。我们可以通过使用融合连接插件安装命令安装这个连接器,或者通过手动下载ZIP文件,并且必须在将要运行的集群上的每台机器上安装连接器。
除此之外,我们还可以用卡夫卡的 服务、财产 使用以下步骤,为利用S3桶的冷数据层归档并创建一个主题:
· 更新log.dirs 属性,具有位置到S3存储位置。我们需要确保设置所有必要的aws凭证和权限,以便卡夫卡将其写入指定的S3桶。
log.dirs=/path/to/S3 bucket
· 我们可以使用内置脚本创建一个使用冷层(S3)的主题Kafka-topics.sh .在这里我们需要设置log.dirs 该特定主题的配置指向S3路径。
bin/kafka-topics.sh --create --topic our_s3_cold_topic --partitions 5 --replication-factor 3 --config log.dirs=s3://our-s3-bucket/path/to/cold/tier --bootstrap-server <>:9092
· 根据S3存储的要求和特点,我们可以根据冷层调整卡夫卡配置,比如修改log.retention.hours 在…中 服务、财产 .
最后说明
最后,通过划分阿帕奇卡夫卡集群中的冷热数据层,可以根据数据特性优化存储资源。随着越来越多的企业开始采用实时数据流来促进业务增长,存储的可伸缩性和成本效益变得至关重要。通过明智地实施高性能和成本效益高的存储层,它们可以实现最佳性能和有效的存储成本管理。