大数据(4h)Kafka经验小结(不定更)

Posted 小基基o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(4h)Kafka经验小结(不定更)相关的知识,希望对你有一定的参考价值。

主要参数优化

文件 or 命令参数名参数说明参数值建议说明
server.propertieslog.retention.hours数据保留时间72建议3天
server.propertiesdefault.replication.factor默认副本策略2建议>1
kafka-topics.sh--replication-factor创建主题时副本策略2建议>1
kafka-server-start.shKAFKA_HEAP_OPTS内存-Xms5G -Xmx5G建议不超过6G

主题和分区的设计

  • Kafka数据在分区内有序,在主题中不一定有序
    主题划分:按业务、按表…
    分区划分:按地区、按表中不影响排序的字段…

  • Kafka分区数设定
    1、创建单分区主题
    2、测试该主题的生产者吞吐量和消费者吞吐量(使用内置脚本)
    3、 分 区 数 = 吞 吐 量 预 期 / m i n ( 吞 吐 量 生 产 者 , 吞 吐 量 消 费 者 ) 分区数=吞吐量_{预期}/min(吞吐量_{生产者},吞吐量_{消费者}) =/min(,)

挂了咋办?

  • 通常挂掉的原因:OOM
  • 挂掉以后有什么不良后果?
    数据丢失:当ack=1且leader收消息后还没来得及同步就挂了时,数据会丢失
    当没有开启事务,非幂等操作时,数据会重复

  • 处理方式
    1、重启Kafka
    2、查看日志错误信息
    3、优化配置以减少挂掉的概率
    4、处理丢失或重复的数据

数据积压

  • 原因:消费者太慢或挂掉

  • 影响:积压3天后没被消费,数据丢失

  • 解决方案:
    1、加主题的分区数,并且同时增加消费组的消费者数,使得 消 费 者 数 = 分 区 数 消费者数=分区数 =
    2、优化消费者,如:增加每批次拉取的数量

单条日志传输大小

  • Kafka对于消息体的大小默认为单条最大值是1M;
    但某些场景里一条消息大于1M,此时需要配置server.properties文件的如下参数
参数名参数说明
replica.fetch.max.bytesBroker可复制的消息的最大字节数
message.max.bytesKafka会接收单个消息size的最大限制
要求:message.max.bytesreplica.fetch.max.bytes

过期数据清理

两种策略参数
删除策略log.cleanup.policy = delete
压缩策略log.cleanup.policy = compact

消费者策略

  • 消 费 者 组 的 消 费 者 数 = 主 题 下 的 分 区 数 消费者组的消费者数=主题下的分区数 =
  • 按照时间消费数据
  • 自动提交消费者偏移量(速度快但故障后可能会丢数据)
  • 手动提交消费者偏移量(降低数据风险但增加代码复杂度)

以上是关于大数据(4h)Kafka经验小结(不定更)的主要内容,如果未能解决你的问题,请参考以下文章

1300多万条数据30G论坛大数据优化实战经验小结

大数据(3g)HIVE开窗函数应用场景(不定更)

旅游经验总结(不定更)

Kafka-文件管理

10年大数据架构师,进行Kafka+Storm+HDFS整合实践,奉上一生经验

大牛总结分享:大数据技术Storm和Kafka 哪些场景更适合