spark-streamin kafka连接和麋鹿堆栈

时间:2017-03-25 20:15:55

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

我想使用kafka connect和spark流媒体插入elasticsearch然后使用kibana为BI用例进行可视化,请你能帮助我,我不知道从哪里开始是否有任何项目使用这些技术可以帮助我unserstand实施的逻辑非常有用

1 个答案:

答案 0 :(得分:1)

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

可能的情况

基本上Logstash将日志转发到由Spark Streaming使用的Kafka。方案是通过Logstash从服务器收集新生成的日志,将日志发送到Kafka,然后由Spark实时处理并将其存储在Elasticsearch中以进一步在Kibana上进行视觉化。

<强> Logstash

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

<强>卡夫卡

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

Spark stream

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

还有一个很好的例子可以使用spark streaming来链接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