Ich möchte den Durchsatz bei jedem Datenknoten messen, indem ich die Zeit für jeden Lese-/Schreibvorgang mißt. Es ist sehr verwirrend, die Millionen von Funktionen zu lesen und herauszufinden, wo das geschieht. Kann jemand die Reihe von Anrufen auflisten, die beim Lesen/Schreiben eines Datenblocks ausgeführt wurden? verwende Version 1.0.1. Alternativ, wenn es bereits eine API gibt, die dies am Datenknoten misst, könnte ich diese Information verwenden.Durchsatz bei Datenknoten messen
Antwort
Die wichtigen zu untersuchenden Klassen zur Durchsatzmessung sind FSDataOutputStream
für Schreibvorgänge und FSDataInputStream
für Lesevorgänge.
Datei lesen: Das erste, was ein Knoten ist, wenn eine Datei zu lesen Anruf open()
auf das FileSystem
Objekt. An diesem Punkt wissen Sie, dass dieser Knoten in Kürze zu lesen beginnt und Sie können Code platzieren, nachdem dieser Aufruf erfolgreich abgeschlossen wurde, um Ihre Messungen vorzubereiten. Der Aufruf von open()
auf HDFS instanziiert einen DistributedFileSystem
, der mit dem NameNode kommuniziert, um Blockspeicherorte zu sammeln (sortiert nach aufrufender Knotennähe). Schließlich gibt das Objekt DistributedFileSystem
FSDataInputStream
zurück ("sieht" eine Datei lesen), der wiederum DFSInputStream
umschließt ("sieht" Lese-Blöcke, behandelt Fehler). Ihre Messungen würden innerhalb der read()
und close()
Anruf auf der FSDataInputStream
Bereich werden.
Datei schreiben: Der Knoten ruft create()
auf der FileSystem
. Zu diesem Zeitpunkt werden verschiedene Prüfungen durchgeführt, die Dateiberechtigungen, Verfügbarkeit usw. umfassen, aber nach dem erfolgreichen Abschluss wird ein FSDataOutputStream
Objekt zurückgegeben, das eine DFSOutputStream
umschließt. Dasselbe Konzept gilt, wenn man einen kontinuierlichen Schreibvorgang sieht, behandelt der andere die Kohärenz des Replikationsfaktors (d. H. Ein Schreibvorgang = drei Schreibvorgänge) und einen Fehler. Ähnlich wie bei einem Lesevorgang würden Ihre Messungen innerhalb des write()
und close()
Aufrufs unter FSDataInputStream
liegen.
Um dies global für alle Knoten in Ihrem Cluster durchzuführen, müssen Sie diese Methoden als Teil der Hadoop-Verteilung überschreiben, die Sie in Ihrem Cluster freigeben.
Erläutert nicht, wie Statistiken für jeden Datenknoten aggregiert werden. Von Clientknoten kann nicht erwartet werden, dass sie die einzelnen Datenknoten profilieren und Informationen an den Namensknoten senden. Wie auch immer, da mein Bedürfnis vorbei ist, werde ich diese Antwort akzeptieren –
- 1. Durchsatz und Latenz eines Codes messen
- 2. Code-Coverage nur bei neuem Code messen
- 3. Wie hoch ist der maximale Durchsatz bei Azure?
- 4. hdfs Datenknoten von NameNode getrennt
- 5. SIMD Latency Durchsatz
- 6. Warum hat Hadoop verschiedene Kommunikationsmechanismen für die Kommunikation zwischen Datenknoten und Datenknoten-Namensknoten?
- 7. Linux Diskless Client NFS Durchsatz
- 8. Wie berechnet iperf den Durchsatz
- 9. Verteilen von Datenknoten über mehrere Rechenzentren hinweg
- 10. Wie weiß Apache Spark über HDFS-Datenknoten?
- 11. Messen der Download-Geschwindigkeit bei Verwendung von Pythons FTPLib
- 12. Messen Sie die XID-Verwendung bei fehlgeschlagenen Abfragen in PostgreSQL
- 13. Serverlaufzeit messen
- 14. Geräuschpegel messen
- 15. messen Zeitunterschied
- 16. Wie berechnet man den Durchsatz in einem Jmeter-Testplan?
- 17. Sollten Benutzer bei Verwendung eines möglicherweise konsistenten Datenspeichers zu bestimmten Datenknoten weitergeleitet werden?
- 18. Durchsatz für Kafka, Spark, Elasticsearch Stack unter GCP/Dataproc
- 19. Messen von Text in WPF
- 20. Tuning OpenGL-Performance für Geometrie Durchsatz
- 21. Probleme beim Erreichen von 1Gbit UDP Durchsatz
- 22. .Net - Vorlesen aktuellen Netzwerk-Schnittstellen-Durchsatz
- 23. Hoher Durchsatz vs niedrige Latenz in HDFS
- 24. Wie Jmeter Durchsatz für zusammenfassenden Bericht
- 25. Was ist der maximale Durchsatz von Loggly?
- 26. Bildschirmwechsel-Antwort/Zeit messen?
- 27. Scipy.cluster.hierarchy.fclusterdata + Abstand messen
- 28. messen Ausführungszeit von Kommandozeilenaufrufen
- 29. Android App-Startzeit messen
- 30. Ansicht in Fragment messen
In Bezug auf Ihren Kopfgeld-Kommentar: Wenn Sie einen Knoten in die Blacklist aufnehmen, wird er nicht mehr am Cluster teilnehmen, und der Durchsatz wird sich nie wiederherstellen. – likeitlikeit
Hey Bug Catcher, irgendwelche Gedanken zu meiner Antwort unten? – Engineiro
@likeitlikeit Ich habe etwas in Anlehnung an die existierende Politik für Herzschläge getan: gib ihr drei Möglichkeiten und wenn es immer noch schlecht ist, dann nimm es auf die schwarze Liste. Nicht gedacht für den praktischen Einsatz sowieso –