我目前在同一台机器上运行 Elasticsearch 6.2.2 版和 Apache Nifi 1.5.0 版。我正在尝试遵循位于以下位置的 Nifi 示例:https://community.hortonworks.com/articles/52856/stream-data-into-hive-like-a-king-using-nifi.html 除了不是存储到 Hive,我想存储到 Elasticsearch。

最初我尝试使用 PutElasticsearch5 处理器,但在 Elasticsearch 上出现以下错误:

Received message from unsupported version: [5.0.0] minimal compatible version is: [5.6.0]

当我尝试使用谷歌搜索此错误消息时,似乎共识是使用 PutElasticsearchHttp 处理器。我的 Nifi 看起来像:
elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误-LMLPHP

以及 PutElasticsearchHttp 处理器的配置:
elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误-LMLPHP

当流文件到达 PutElasticsearchHttp 处理器时,会出现以下错误:elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误-LMLPHP
PutElasticSearchHttp failed to insert StandardFlowFileRecord into Elasticsearch due to , transferring to failure.

原因似乎是空白/空。 Elasticsearch 日志中也没有任何内容。

在 ConvertAvroToJson 之后,数据是一个 JSON 数组,所有条目都在一行上。这是一个示例值:
{"City": "Athens",
 "Edition": 1896,
 "Sport": "Aquatics",
 "sub_sport": "Swimming",
 "Athlete": "HAJOS, Alfred",
 "country": "HUN",
 "Gender": "Men",
 "Event": "100m freestyle",
 "Event_gender": "M",
 "Medal": "Gold"}

关于如何调试/解决这个问题的任何想法?我需要先在 Elasticsearch 中创建任何东西吗?我的配置正确吗?

最佳答案

我能够弄清楚。在 ConvertAvroToJSON 之后,流文件是一行,其中包含 JSON 索引的 JSON 数组。因为我想存储单个索引,所以我需要一个 SplitJSON 处理器。现在我的 Nifi 看起来像这样:

elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误-LMLPHP

SplitJson 的配置如下所示:

elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误-LMLPHP

关于elasticsearch - Apache NiFi : PutElasticSearchHttp is not working, 出现空白错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49309299/

10-17 03:03