我正在使用NiFi(最近转向它,它似乎符合我的需要)。我们最近建立了一个Spark / Hadoop集群,并且已经使用Elasticsearch大约2年了。我的目标是将Elasticsearch中的特定索引转换为HDFS(特别是syslog)。我正在进行异常检测的机器学习项目,但是想要从HDFS处理数据以加快速度。
所以,一点背景 - 我们的syslog索引每天都不同(logstash-syslog-2017-11-20,等等)。我只需要来自syslog的消息,所以基本上我想做的是:
ES -> NiFi -> Parse JSON to give me back text -> write each message to its own line in a text file.
最后,在我的HDFS中,我有每个索引(日)的消息文本文件,例如:
syslog-2017-11-19
syslog-2017-11-20
syslog-2017-11-21
等等....
我对几件事感到难过:
构建此组件需要哪些组件?我看到有GenerateFlowFile,我认为我需要使索引名称动态化。
由于我想要提取整个索引,我想我需要使用" ScrollElasticSearchHttp",但我不确定。还有其他选择,但我不知道什么是最好的。使用PySpark时,我使用ES-Hadoop连接器进行简单查询以获取整个索引,但必须将滚动大小增加到10k,以使其运行更快。只是对我应该使用的处理器感到困惑。
如果有人能够让我知道这个(什么处理器,连接器等)的结构我需要从syslog从ES到我的HDFS获取消息的索引,这将是很好的。还在学习这个,所以请原谅我对此的无知。非常感谢您的帮助!
答案 0 :(得分:1)
还有ListenBeats
处理器。您可以将Logstash重定向到NiFi,Nifi可以写入EL和HDF。这将使NiFi成为您的关键路径。
也有可能编写自己的处理器,你可以很容易地做到这一点。只需关注this article
即可我最近也找到了Nifi,我觉得很棒。玩了一下,因此我不是专家。
答案 1 :(得分:0)
我要发表我的第一条评论作为答案,因为那才是我的解决方案。
根据我上面的评论,我最终使用了ScrollElasticsearchHttp处理器,看来我的某些选项格式不正确。一旦获得正确的格式,它就会起作用。我希望NiFi文档提供更多示例/显式示例,以显示格式并将其与ES-Hadoop格式化选项的方式区分开。无论如何,现在一切正常。我有兴趣研究编写自己的处理器-是否为此提供指南或其他内容?