【问题标题】:spark-streamin kafka connect and the elk stackspark-streaming kafka connect 和 elk stack
【发布时间】:2017-08-18 16:30:28
【问题描述】:

我想使用 kafka connect 和 spark 流插入到 elasticsearch 中,然后使用 kibana 可视化用于 BI 用例,请你帮我看看我不知道从哪里开始有没有使用这些技术的项目可以帮助我理解实现的逻辑会很有帮助

【问题讨论】:

    标签: apache-spark elasticsearch apache-kafka logstash spark-streaming


    【解决方案1】:

    您尝试构建的是某种大数据管道。有很多方法可以做到这一点。一种可能的架构是:Logstash->Kafka->Spark->Elasticsearch

    可能的情况

    基本上 Logstash 将日志转发到 Kafka,由 Spark Streaming 使用。该场景是通过 Logstash 从服务器收集新生成的日志,将日志发送到 Kafka,然后由 Spark 流式处理近乎实时地处理并将它们存储在 Elasticsearch 中,以便在 Kibana 上进一步可视化。

    Logstash

    Logstash 是一个开源的服务器端数据处理管道,可同时从多个来源获取数据,对其进行转换,然后将其发送到多个输出端。那里有很多 input plugins 用于 logstash。例如,您可以使用文件输入插件从文件中获取日志。此外,logstash 有很多 output plugins。但需要注意的是kafka output plugin

    卡夫卡

    Apache Kafka 是一个分布式发布-订阅消息系统,旨在取代传统的消息代理。 Kafka 可用于多种用途:消息传递、实时网站活动跟踪、监控分布式应用程序的操作指标、来自众多服务器的日志聚合、记录和排序数据库中状态更改的事件源、分布式系统同步的提交日志数据和从故障系统中恢复数据。在我的用例中,kafka 用于日志聚合。

    Spark 流式传输

    这个guide 应该会引导您实施流式传输作业的第一部分。这意味着使用 spark 以流式方式从 Kafka 实时获取数据。对于第二部分(将接收到的数据发送到 Elasticsearch),您可以使用Elasticsearch support for Apache Spark

    还有一个使用 spark 流将 spark 与 Elasticsearch 链接的好例子:https://github.com/pochi/spark-streaming-kafka-sample/blob/master/src/main/scala/pochi/spark/streaming/Elastic.scala。但是由于技术的变化,您可能需要更新一些东西。

    Elasticsearch - Kibana

    最后一步很简单。您需要配置 Elasticsearch 和 Kibana 以相互通信。然后通过在 Kibana 上配置索引模式来加载数据,并进行可视化。有关这方面的更多信息,请参阅documentation online

    【讨论】:

    • 很抱歉再次打扰您 M.situation 我可以使用 redis 代替 kafka 吗?或者kafka更适合这个用例
    • Redis 在存储和各种功能方面与 Kafka 有点不同。 Redis 的核心是一种内存数据存储,可用作高性能数据库、缓存和消息代理。它非常适合实时数据处理。这意味着它使用其主内存进行存储和处理,这使其比基于磁盘的 Kafka 快得多。 Redis 内存存储的唯一问题是我们无法长时间存储大量数据。另外,Redis 没有 Kafka 那样的并行概念。
    • 基于这个解释,我想你可以选择你想要使用的。但当然,Redis 可以适合这种用例。
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2018-01-13
    • 2016-03-12
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多