Ich schreibe auf hdfs mit rume spool-Verzeichnis. Hier ist mein CodeSchreiben in den Kanal mit dem Spool-Verzeichnis, wie man die Datei umbenennt
#initialize agent's source, channel and sink
agent.sources = test
agent.channels = memoryChannel
agent.sinks = flumeHDFS
# Setting the source to spool directory where the file exists
agent.sources.test.type = spooldir
agent.sources.test.spoolDir = /johir
agent.sources.test.fileHeader = false
agent.sources.test.fileSuffix = .COMPLETED
# Setting the channel to memory
agent.channels.memoryChannel.type = memory
# Max number of events stored in the memory channel
agent.channels.memoryChannel.capacity = 10000
# agent.channels.memoryChannel.batchSize = 15000
agent.channels.memoryChannel.transactioncapacity = 1000000
# Setting the sink to HDFS
agent.sinks.flumeHDFS.type = hdfs
agent.sinks.flumeHDFS.hdfs.path =/user/root/
agent.sinks.flumeHDFS.hdfs.fileType = DataStream
# Write format can be text or writable
agent.sinks.flumeHDFS.hdfs.writeFormat = Text
# use a single csv file at a time
agent.sinks.flumeHDFS.hdfs.maxOpenFiles = 1
# rollover file based on maximum size of 10 MB
agent.sinks.flumeHDFS.hdfs.rollCount=0
agent.sinks.flumeHDFS.hdfs.rollInterval=0
agent.sinks.flumeHDFS.hdfs.rollSize = 1000000
agent.sinks.flumeHDFS.hdfs.batchSize =1000
# never rollover based on the number of events
agent.sinks.flumeHDFS.hdfs.rollCount = 0
# rollover file based on max time of 1 min
#agent.sinks.flumeHDFS.hdfs.rollInterval = 0
# agent.sinks.flumeHDFS.hdfs.idleTimeout = 600
# Connect source and sink with channel
agent.sources.test.channels = memoryChannel
agent.sinks.flumeHDFS.channel = memoryChannel
Aber das Problem ist, Daten in die Datei geschrieben wird umbenannt zu einigen zufälligen TMP-Namen. Wie kann ich die Datei in hdfs zu meinem ursprünglichen Dateinamen im Quellverzeichnis umbenennen. Zum Beispiel habe ich die Datei day1.txt, day2.txt, day3.txt. Das sind Daten für zwei verschiedene Tage. Ich möchte sie in hdfs als day1.txt, day2.txt, day3.txt gespeichert halten. Aber diese drei Dateien werden zusammengeführt und in hdfs als FlumeData.1464629158164.tmp
Datei gespeichert. Gibt es eine Möglichkeit, dies zu tun?