【问题标题】:Can KAFKA producer read log files?KAFKA 生产者可以读取日志文件吗?
【发布时间】:2015-04-22 20:00:26
【问题描述】:

我的应用程序的日志文件不断累积在服务器上。我想通过 KAFKA 将它们转储到 HDFS。我希望 Kafka 生产者读取日志文件,将它们发送到 Kafka 代理,然后将这些文件移动到另一个文件夹。可以Kafka 生产者读取日志文件?另外,Kafka生产者中是否可以有复制逻辑?

【问题讨论】:

    标签: hdfs apache-kafka logfile


    【解决方案1】:
    • Kafka 在称为主题的类别中维护消息源。
    • 我们将调用向 Kafka 主题生产者发布消息的进程。
    • 我们将调用订阅主题的进程并处理已发布消息消费者的提要。
    • Kafka 作为一个集群运行,由一个或多个服务器组成,每个服务器称为代理。

    • 因此,在较高级别上,生产者通过网络将消息发送到 Kafka 集群,然后将消息提供给消费者,如下所示:

    因此,这不适合您要注入日志文件的应用程序。相反,您可以尝试 flume

    Flume 是一种分布式、可靠且可用的服务,用于高效收集、聚合和移动大量日志数据。它具有基于流数据流的简单灵活的架构。它具有可调整的可靠性机制以及许多故障转移和恢复机制,具有健壮性和容错性。它使用一个简单的可扩展数据模型,允许在线分析应用程序。

    【讨论】:

      【解决方案2】:

      如您所知,Apache Kafka 是发布-订阅消息系统。您可以从您的应用程序发送消息。要从您的应用程序发送消息,您可以使用kafka clientskafka rest api

      简而言之,您可以使用您的应用程序读取您的日志,并将这些日志发送到 kafka 主题。

      要处理这些日志,您可以使用apache storm。您可以找到许多用于这些目的的集成解决方案。通过使用storm,你可以 添加您的流处理的任何逻辑。

      您可以阅读有关storm kafka integration 的许多有用的详细信息。

      还可以将处理后的日志放到 hdfs 中,您可以轻松地将 Storm 与 hadoop 集成。您可以查看this repo

      【讨论】:

        【解决方案3】:

        Kafka 旨在支持实时日志聚合等大容量事件流。来自kafka文档

        许多人使用 Kafka 作为日志聚合解决方案的替代品。日志聚合通常从服务器收集物理日志文件,并将它们放在一个中心位置(可能是文件服务器或 HDFS)进行处理。 Kafka 抽象出文件的细节,并将日志或事件数据更清晰地抽象为消息流。这样可以降低处理延迟并更轻松地支持多个数据源和分布式数据消费

        我还得到了这条小信息from this nice article,它与您的用例几乎相似

        如今,Kafka 已在 LinkedIn 的多个项目中用于生产。有离线和在线使用。在离线情况下,我们使用 Kafka 将所有活动事件提供给我们的数据仓库和 Hadoop,然后我们从中运行各种批处理分析

        【讨论】:

          猜你喜欢
          • 2016-05-24
          • 1970-01-01
          • 1970-01-01
          • 2018-01-14
          • 2022-01-06
          • 2018-07-13
          • 2016-06-16
          • 2016-12-17
          • 1970-01-01
          相关资源
          最近更新 更多