Je suis nouveau dans le domaine de Apache Flume.
J'essaie de voir comment je peux obtenir un json (comme source http), le parser et le stocker dans un chemin dynamique sur hdfs en fonction du contenu.
Par exemple :
si le json est :
[{
"field1" : "value1",
"field2" : "value2"
}]
alors le chemin hdfs sera :
/some-default-Root-path/value1/value2/some-value-name-file
Existe-t-il une configuration de flume qui me permette de faire cela ?
Voici ma configuration actuelle (accepte un json via http, et le stocke dans un chemin en fonction du timestamp) :
#flume.conf: http source, hdfs sink
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = org.apache.flume.source.http.HTTPSource
a1.sources.r1.port = 9000
#a1.sources.r1.handler = org.apache.flume.http.JSONHandler
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /user/uri/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = events-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
Merci !