成都网站建设设计

将想法与焦点和您一起共享

CDP中Kafka的配置方法

这篇文章主要讲解了“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的配置方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享文章:CDP中Kafka的配置方法
当前链接:http://chengdu.cdxwcx.cn/article/pcsesd.html