将Nifi连接到Elasticsearch时出现错误
我在Ubuntu 16.04.3 LTS的VM实例上安装了Nifi 1.4.0和Elasticsearch 5.6.2。将Nifi连接到Elasticsearch时出现错误
我的目标是使用Nifi从Twitter中提取一些数据,将其存储在Elasticsearch中,最终我将在Kabana中播放数据。
问题所有工作都是孤立的,也就是说我可以直接从命令行向Elasticsearch添加数据并检索它。我也可以访问Nifi,并且我成功地从twitter中获取数据并将其传递给PutElasticsearch处理器。
事先知情同意程序Nifi从Twitter中提取数据,然后抛出错误
所引发的异常情况如下: PutElasticsearch[id=fbb5f3cf-015e-1000-8321-71b19eef4054] Failed to insert into Elasticsearch due to None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{localhost/127.0.0.1:9300}]. More detailed information may be available in the NiFi logs.: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{localhost/127.0.0.1:9300}]]
在我的研究,我已经看到了一些人的视线看到了同样的错误,但他们都声称将端口更改为:9300可解决他们的问题。正如你可以在我的PutElasticsearch处理器配置选项卡的图片中看到的那样,这里不应该是这个问题。
的产品图我真的很感激一些帮助,我很为难。
PutElasticsearch使用本地传输API,它有效地让NiFi节点成为群集的一部分。因此,它对集群版本和Elasticsearch软件包中包含的传输库版本非常敏感。目前,PutElasticsearch使用传输库的2.1.0版本,它几乎肯定与5.6.2群集不兼容。我应该提到有一个使用5.0.1版本库的PutElasticsearch5处理器,但由于次版本的差别很大,所以这可能与5.6.2群集不兼容。
但是,Elasticsearch处理器有一组“Http”版本(如PutElasticsearchHttp和PutElasticsearchHttpRecord),它们使用REST API与集群进行通信。由于REST API在ES版本中更加稳定,通常可以使用这些来实现您的目标。折衷是在性能上,由于与集群的额外通信开销,处理器的Http版本有点慢。
请使用Nifi 1.4.0和elasticsearch-5.6.5和PutElasticsearch5作为处理器。这个对我有用。
新鲜的机器和对齐的版本,现在事情很好地流动。谢谢@mattyb – ob27