我想使用Flume将JSON文件摄取到SOLR中,我想知道哪种方法最好。 目前,对我有用的唯一方法是在Flume中使用JSONHandler,但json事件需要具有特定的格式(标题,正文)。我想要摄取的JSON事件具有嵌套数据,并且没有(标题,正文)格式。 请在下面找到我的Flume源配置(HTTP源,内存通道和solr接收器)。
c_aggregator_poc.sources = c_analytics-httpsource1-poc
c_aggregator_poc.channels = c_analytics-memorychannel1-poc
c_aggregator_poc.sinks = c_analytics-solrsink1-poc
c_aggregator_poc.sources.c_analytics-httpsource1-poc.type = http
c_aggregator_poc.sources.c_analytics-httpsource1-poc.handler = org.apache.flume.source.http.JSONHandler
c_aggregator_poc.sources.c_analytics-httpsource1-poc.port = 9049
c_aggregator_poc.sources.c_analytics-httpsource1-poc.channels = c_analytics-memorychannel1-poc
c_aggregator_poc.channels.c_analytics-memorychannel1-poc.type = memory
c_aggregator_poc.channels.c_analytics-memorychannel1-poc.capacity = 10000
c_aggregator_poc.channels.c_analytics-memorychannel1-poc.transactionCapacity = 1000
c_aggregator_poc.sinks.c_analytics-solrsink1-poc.type = org.apache.flume.sink.solr.morphline.MorphlineSolrSink
c_aggregator_poc.sinks.c_analytics-solrsink1-poc.channel = c_analytics-memorychannel1-poc
c_aggregator_poc.sinks.c_analytics-solrsink1-poc.morphlineFile = morphlines.conf
c_aggregator_poc.sinks.c_analytics-solrsink1-poc.morphlineId = morphlineC_analytics
另一个想法是编写一个自定义的JSONHandler,但我想知道它是否还不存在(我还没有找到一个好的例子)。 一个选项是在Morphlines中完成。我看到有一个readJson函数,但我还没有使用它。 任何帮助表示赞赏!