ich es nie auf der gleichen Maschine getan haben (wie Sie in Ihnen genannten Kommentar, über die Umwelt), so dass Sie vielleicht ein paar Tests und Anpassungen für die folgende Konfiguration zu arbeiten, tun müssen.
In Ihrem Fall, da die Dateien dynamisch (oder viele Verzeichnisse) in einer erstellt werden würde ich vorschlagen, die Spooling Directory Source (pro Verzeichnis) und HDFS Sink zu konfigurieren. Erstellen Sie eine Datei test.conf
in conf
Verzeichnis in Flume Installationsordner und setzen ähnliche Konfiguration:
# Name the components on this agent
agent.sources = file-source
agent.sinks = hdfs-sink
agent.channels = mem-channel
# Associate channel with source and sink
agent.sources.file-source.channels = mem-channel
agent.sinks.hdfs-sink.channel = mem-channel
# Configure the source
agent.sources.file-source.type = spooldir
agent.sources.file-source.spoolDir = /tmp/spool/
agent.sources.file-source.fileHeader = true
# Configure the sink
agent.sinks.hdfs-sink.type = hdfs
agent.sinks.hdfs-sink.hdfs.path = /tmp/log.log
agent.sinks.hdfs-sink.hdfs.fileType = DataStream
agent.sinks.hdfs-sink.hdfs.path = /flume/test/
# Use a channel which buffers events in memory
agent.channels.mem-channel.type = memory
agent.channels.mem-channel.capacity = 1000
agent.channels.mem-channel.transactionCapacity = 100
den Agenten auszuführen, führen Sie den folgenden Befehl in das Gerinne Installationsverzeichnis:
bin/flume-ng agent -n agent -c conf -f conf/test.conf
starten Putting-Dateien in das /tmp/spool/
und prüfen Sie, ob sie im HDFS erscheinen.
Wenn Sie das System verteilen, empfehle ich Avro Sink auf Client und Avro Source auf Server verwenden, Sie werden es erhalten, wenn Sie dort sein werden.
Weitere Details sind erforderlich, um Ihnen einige Treffer zu geben. Zuerst haben Sie mehrere Maschinen oder Sie tun alles auf dem gleichen Knoten (zum Beispiel zum Testen). Was ist die Art der Dateien: Sind das statische Dateien, die Sie alle gleichzeitig lesen, oder sind es zum Beispiel Protokolldateien, die von Zeit zu Zeit erstellt werden? – Serhiy
Momentan verwende ich den gleichen Knoten zum Testen. Es sind vom Benutzer erstellte Protokolldateien, und das Intervall zwischen den einzelnen Erstellungen kann von Minuten bis zu Stunden variieren. Aber jetzt erzeuge ich zufällige Dateien, um zu sehen, wie HDFS auf das Streaming von kleinen Dateien reagiert. – Yassine