我目前在同一台机器上运行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看起来像:
以及PutElasticsearchHttp处理器的配置:
当流文件到达PutElasticsearchHttp处理器时,会出现以下错误:
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中创建一些东西吗?我的配置是否正确?
发布于 2018-03-20 00:25:00
我能够弄明白这一点。在ConvertAvroToJSON之后,流文件是包含JSON索引的JSON数组的一行。因为我想存储单个索引,所以我需要一个SplitJSON处理器。现在我的Nifi看起来像这样:
SplitJson的配置如下所示:
发布于 2018-03-17 22:26:10
索引名称不能包含/字符。尝试使用有效的索引名称:例如sports。
发布于 2018-06-04 00:25:09
我有一个类似的流程,在包含splitTojSON
之后,将类型更改为_doc
完成了此操作。
https://stackoverflow.com/questions/49309299
复制相似问题