2017-10-24 4 views
0

Das von der Bibliothek EventHubutils generierte Prozessverzeichnis erstellt viele kleine Dateien in hdfs. https://github.com/Azure/spark-eventhubs/blob/master/docs/direct_stream.md. Aufgrund dieser kleinen Dateien wird der Name-Knoten stark belastet. Gibt es eine Möglichkeit, das Fortschritts-Verzeichnis zu löschen, ohne die Funken-Anwendung zu stören.So löschen Sie das von der Anwendung "sparkstreaming" generierte Fortschrittsverzeichnis Empfangen von Nachrichten von eventhub

enter image description here

Antwort

0

Per meiner Erfahrung, wenn Ihre aktuelle Aufgabe ausgeführt wird, kann die resultierende Datei kann nicht gelöscht werden.

Hier bieten wir zwei Möglichkeiten zum Löschen von Dateien ohne Code für Ihre Referenz.

Erster Weg:

Da die Dateien auf dem HDFS auf azure blob storage container gefunden werden, können Sie sie löschen direkt auf dem Azure-Portal. Wenn Sie Dateien nicht einzeln löschen möchten, können Sie mit dem Werkzeug Azure Storage Explorer alle zu löschenden Dateien auswählen.

Zweiter Weg:

Sie können mit dem Cluster-Maschine anmelden und nutzen die rm command line:

hadoop fs -rm [-f] [-r |-R] [-skipTrash] URI [URI ...] 

Sie können die entsprechenden azure blob storage container Pfad im configuration file finden.

wasbs://[email protected]/testDir/testFile. 

Ich hoffe, es hilft Ihnen.

+0

Wollen Sie also die Dateien löschen, die älter als die Aufbewahrungsfrist des Ereignis-Hubs sind? Wird es kein Problem für den kontinuierlich laufenden Spark-Streaming-Job geben? –

+0

@sivakrishna Aus dem Code, den Sie angeboten haben (https://github.com/Azure/spark-eventbubs/blob/228e1b4ef8c73ddb7e9e44c4216a86f1f3912e9e/core/src/test/scala/org/apache/spark/sql/streaming/eventbubs/EventHubsStreamTest.scala # L423), merke ich, dass die Generate-Dateien Timestamp haben. Sie könnten Dateien bereinigen, die Sie aufgrund des Zeitstempels nicht verwenden. –

Verwandte Themen