开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink集群使用kafka_appender收集flink产生的日志,但是现在实时运行的任务超过了

Flink集群使用kafka_appender收集flink产生的日志,但是现在实时运行的任务超过了三千个,运行的yarn-container有20万+。导致存储日志的kafka集群连接数过多,kafka集群压力有点大,请教各位大佬flink日志采集这块还有什么好的方式吗

展开
收起
云上静思 2023-10-16 16:21:59 60 0
3 条回答
写回答
取消 提交回答
  • 减少日志,warn 输出,yinfo 不输出了,或者扩kafka节点,或者再搭建一个kafka集群。

    此答案来自钉钉群“【2】Apache Flink China 社区”

    2023-10-16 20:17:28
    赞同 展开评论 打赏
  • Flink日志采集有多种方式,具体选择哪种方式需要根据实际情况来定。以下是一些常见的方法:

    1. 使用KafkaAppender:使用KafkaAppender可以将Flink的日志收集到Kafka中,方便后续的存储和分析。但是,当Flink的任务数量较多时,可能会导致Kafka集群的压力增大,需要采取一些措施来缓解压力,例如增加Kafka的连接数限制、使用Kafka的分区功能等。
    2. 使用Flume:Flume是一个分布式、可扩展的数据收集系统,可以将Flink的日志收集到HDFS、HBase、Kafka等多种存储系统中。Flume具有较好的可扩展性和容错性,适用于大规模的数据收集场景。
    3. 使用Fluentd:Fluentd是一个轻量级的数据收集系统,可以将Flink的日志收集到各种存储系统中,包括Elasticsearch、Logstash、Kafka等。Fluentd具有较高的灵活性和可扩展性,适用于各种不同的数据收集场景。

    image.png

    2023-10-16 16:54:37
    赞同 展开评论 打赏
  • Flink日志采集这块还有以下几种可能的方式:

    • 使用Flink自带的日志收集器,它可以将Flink任务的日志收集到HDFS或者其他文件系统中,然后通过Flink UI或者其他工具来查看或分析。这种方式可以减少对Kafka的依赖和压力,但是也需要额外的存储空间和网络带宽。。
    • 使用Fluentd或者Logstash等轻量级的日志收集工具,它们可以将Flink任务的日志发送到Kafka或者其他消息队列中,然后通过ELK或者其他平台来展示或检索。这种方式可以减少对Kafka的连接数和流量,但是也需要在每个节点上部署和配置相应的工具。
    • 使用Zookeeper或者Redis等分布式协调服务,它们可以将Flink任务的日志写入到临时节点或者缓存中,然后通过定时任务或者触发器来批量读取和发送到Kafka或者其他消息队列中,然后通过ELK或者其他平台来展示或检索。这种方式可以减少对Kafka的连接数和流量,但是也需要维护额外的服务和逻辑。
      就现在的情况可以尝试一下优化方案:
    • 调整Kafka集群的参数,例如增加broker的数量、分区的数量、副本的数量等,来提高Kafka的吞吐量和容错能力。
    • 调整Flink任务的日志级别,例如只输出WARN或ERROR级别的日志,来减少不必要的日志信息。
    • 调整Flink任务的日志格式,例如使用JSON或其他标准格式,来方便后续的日志解析和处理
    2023-10-16 16:35:20
    赞同 1 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
    MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
    消息队列kafka介绍 立即下载