温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CDP中Kafka的配置方法

发布时间:2021-08-30 11:18:05 来源:亿速云 阅读:155 作者:chen 栏目:大数据

这篇文章主要讲解了“CDP中Kafka的配置方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CDP中Kafka的配置方法”吧!

Apache Kafka是一个高性能、高可用性、冗余的流消息平台。

Kafka的功能很像发布/订阅消息系统,但具有更高的吞吐量、内置分区、复制和容错能力。对于大规模消息处理应用程序来说,Kafka是一个很好的解决方案。它通常与Apache Hadoop和Spark Streaming一起使用。


操作系统要求

Kafka对操作系统要求的集合。

SUSE Linux企业服务器(SLES)

与CentOS不同,SLES默认情况下会限制虚拟内存。更改此默认值要求,将以下条目添加到/etc/security/limits.conf文件中:

* hard as unlimited* soft as unlimited

内核限制

您必须为内核正确配置下面三个设置。

  • 文件描述符(File Descriptors)

您可以通过以下步骤在Cloudera Manager中设置文件描述符:转到Kafka > Configuration > Maximum Process File Descriptors 并设置所需的值。Cloudera建议使用100000或更高的数值进行配置。

  • 最大内存映射(Max Memory Map)

您必须在特定的内核设置中配置最大内存映射数。Cloudera建议配置32000或更高版本。

  • 最大套接字缓冲区大小(Max Socket Buffer Size)

将缓冲区大小设置为大于任何您定义的Kafka send缓冲区。


性能考虑

有关Kafka集群的基本建议的集合。

运行Kafka以获得最佳性能的最简单建议是为Kafka代理使用专用主机,为Kafka集群使用专用的ZooKeeper集群。如果这不是一种选项,请考虑以下有关与Kafka集群共享资源的其他准则:

  • 在虚拟机中运行

在现代数据中心中,通常的做法是在虚拟机中运行进程。通常,这可以更好地共享资源。Kafka对I / O吞吐量足够敏感,以至于VM会干扰代理的正常运行。因此,通常不建议在VM中运行Kafka。但是,如果您在虚拟环境中运行Kafka,则需要依靠VM供应商来帮助您优化Kafka的性能。

  • 不要使用Brokers或ZooKeeper运行其他进程

由于与其他进程的I / O争用,通常建议避免在与Kafka代理相同的主机上运行其他此类进程。

  • 保持Kafka-ZooKeeper连接稳定

Kafka在很大程度上依赖于稳定的ZooKeeper连接。在Kafka和ZooKeeper之间放置不可靠的网络将显示为ZooKeeper脱机到Kafka。不可靠的网络示例包括:

    • 不要将Kafka / ZooKeeper节点放在不同的网络上

    • 请勿将Kafka / ZooKeeper节点与其他高网络负载置于同一网络上


配额

了解配额以及如何设置配额。

Kafka可以对生产和获取请求时强制执行配额。生产者和消费者可以使用大量数据。这会垄断代理资源,导致网络饱和,并且通常会拒绝向其他客户端和代理本身提供服务。配额可以防止这些问题,并且对于大型的多租户集群非常重要,在该集群中,使用少量数据的少量客户端可能会降低用户体验。

配额是按客户端ID定义的字节速率阈值。客户端ID在逻辑上标识发出请求的应用程序。一个客户端ID可以跨越多个生产者和消费者实例。该配额作为单个实体应用于所有实例。例如,如果客户端ID的生产配额为10 MB / s,则该配额在具有相同ID的所有实例之间共享。

当将Kafka作为服务运行时,配额可以强制执行API限制。默认情况下,每一个唯一的客户端ID接收以每秒字节数固定的配额,如通过集群配置(quota.producer.default,quota.consumer.default)。此配额是根据每个代理定义的。每个客户端在受到限制之前,每个代理每秒最多可以发布或获取 X个字节。

当客户端超过其配额时,代理不会返回错误,而是尝试降低客户端的速度。代理计算使客户端达到其配额所需的延迟量,并将响应延迟该时间量。这种方法使配额违规对客户端(客户端指标之外)透明。这也避免了客户端必须实施特殊的退避和重试行为。

您可以覆盖需要更高或更低配额的客户端ID的默认配额。该机制类似于按主题的日志配置替代。将您的客户端ID覆盖写到ZooKeeper的/config/clients。所有代理均会读取覆盖,这些覆盖将立即生效。您可以更改配额,而不必滚动重启整个集群。

默认情况下,每个客户端ID都会收到一个不受限的配额。以下配置将每个生产者和消费者客户端ID的默认配额设置为10 MB / s。

quota.producer.default=10485760quota.consumer.default=10485760

要使用Cloudera Manager设置配额,请打开Kafka Configuration 页面并搜索Quota。使用提供的字段来设置默认使用者配额或默认生产者配额。

JBOD

JBOD是指一种系统配置,其中磁盘是独立使用的,而不是将它们组织到冗余阵列(RAID)中。即使单个磁盘不可靠,使用RAID通常也会导致更可靠的硬盘配置。此类RAID设置在基于商用硬件构建的大规模大数据环境中很常见。启用RAID的配置更昂贵且设置更复杂。在许多环境中,出于以下原因,首选JBOD配置:

  • 降低存储成本:建议使用RAID-10来防止磁盘故障。但是,扩展RAID-10配置可能会变得非常昂贵。在每个节点上冗余存储数据意味着必须倍增存储空间需求,因为数据也在节点之间复制。

  • 改进的性能:与HDFS一样,RAID-10配置中最慢的磁盘也限制了整体吞吐量。写入需要通过RAID控制器。另一方面,使用JBOD时,由于在没有控制器的情况下跨磁盘进行了隔离写入,因此提高了IO性能。


设置Kafka的用户限制

了解有关Kafka用户的限制以及如何监控它们。

Kafka可以同时打开许多文件。对于大多数类Unix系统,最大打开文件数的默认设置1024是不够的。任何重大负载都可能导致故障并导致错误消息,例如java.io.IOException ...(打开的文件太多)记录在Kafka或HDFS日志文件中。您可能还会注意到以下错误:

ERROR Error in acceptor (kafka.network.Acceptor)

java.io.IOException: Too many open files

Cloudera建议将该值设置为较高的起点,例如32,768。

您可以在Kafka Broker仪表板上监视正在使用的文件描述符的数量。在Cloudera Manager中:

  1. 转到Kafka服务。

  2. 选择一个Kafka 代理。

  3. 打开Charts Library > Process Resources,然后向下滚动到File Descriptors图表。

感谢各位的阅读,以上就是“CDP中Kafka的配置方法”的内容了,经过本文的学习后,相信大家对CDP中Kafka的配置方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI