Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Note
- IO Cache wurde bis Spark 2.3 unterstützt und wird in Spark 2.4 (HDInsight 4.0) und Spark 3.1.2 (HDInsight 5.0) nicht unterstützt werden.
IO Cache ist ein Daten-Caching-Dienst für Azure HDInsight, der die Leistung von Apache Spark-Jobs verbessert. IO Cache funktioniert auch mit Apache TEZ und Apache Hive Workloads, die auf Apache Spark Clustern ausgeführt werden können. IO Cache verwendet eine Open-Source-Caching-Komponente namens RubiX. RubiX ist ein lokaler Festplattencache für Big-Data-Analyse-Engines, die auf Daten aus Cloud-Speichersystemen zugreifen. RubiX ist einzigartig unter Caching-Systemen, da es Solid-State Laufwerke (SSDs) verwendet, anstatt Betriebsspeicher für Caching-Zwecke zu reservieren. Der IO Cache-Dienst startet und verwaltet RubiX-Metadatenserver auf jedem Worker-Knoten des Clusters. Es konfiguriert außerdem alle Dienste des Clusters für die transparente Nutzung des RubiX-Caches.
Die meisten SSDs liefern mehr als 1 GByte Bandbreite pro Sekunde. Diese Bandbreite, ergänzt durch den In-Memory-Dateicache des Betriebssystems, bietet genug Bandbreite, um Big-Data-Rechenmaschinen wie Apache Spark zu laden. Der Betriebsspeicher bleibt für Apache Spark verfügbar, um stark speicherabhängige Aufgaben wie Shuffles zu verarbeiten. Die exklusive Nutzung des Betriebsspeichers ermöglicht es Apache Spark, eine optimale Ressourcennutzung zu erreichen.
Note
IO Cache verwendet derzeit RubiX als Caching-Komponente, aber dies könnte sich in zukünftigen Versionen des Dienstes ändern. Bitte verwenden Sie die IO-Cache-Schnittstellen und gehen Sie keine direkten Abhängigkeiten von der RubiX-Implementierung ein. IO Cache wird derzeit nur mit Azure BLOB Storage unterstützt.
Vorteile von Azure HDInsight IO Cache
Die Verwendung von IO Cache bringt eine Leistungssteigerung für Jobs, die Daten aus Azure Blob Storage lesen.
Du musst keine Änderungen an deinen Spark-Jobs vornehmen, um Leistungssteigerungen bei IO Cache zu sehen. Wenn IO Cache deaktiviert ist, liest dieser Spark-Code Daten aus der Ferne aus Azure Blob Storage: spark.read.load('wasbs:///myfolder/data.parquet').count(). Wenn IO Cache aktiviert wird, verursacht dieselbe Codezeile einen zwischengespeicherten Read-Through-IO Cache. Bei den folgenden Lesungen werden die Daten lokal von der SSD ausgelesen. Worker-Nodes im HDInsight-Cluster sind mit lokal angeschlossenen, dedizierten SSD-Laufwerken ausgestattet. HDInsight IO Cache verwendet diese lokalen SSDs zum Caching, was die geringste Latenz bietet und die Bandbreite maximiert.
Erste Schritte
Azure HDInsight IO Cache wird standardmäßig in der Vorschau deaktiviert. IO Cache ist auf Azure HDInsight 3.6+ Spark-Clustern verfügbar, die Apache Spark 2.3 ausführen. Um IO Cache auf HDInsight 4.0 zu aktivieren, führen Sie folgende Schritte durch:
Navigieren Sie in einem Webbrowser zu
https://CLUSTERNAME.azurehdinsight.net, wobeiCLUSTERNAMEder Name Ihres Clusters ist.Wählen Sie links den IO Cache-Dienst aus.
Wählen Sie Aktionen (Service-Aktionen in HDI 3.6) und Aktivieren.
Bestätigen Sie den Neustart aller betroffenen Dienste im Cluster.
Note
Obwohl die Fortschrittsleiste aktiviert angezeigt wird, wird IO Cache erst aktiviert, wenn du die anderen betroffenen Dienste neu startest.
Problembehandlung
Man kann Fehler im Festplattenspeicher bekommen, wenn man Spark-Jobs ausführt, nachdem man IO Cache aktiviert hat. Diese Fehler treten auf, weil Spark auch lokalen Festplattenspeicher zur Speicherung von Daten während der Mischvorgänge verwendet. Spark könnte der SSD-Speicherplatz ausgehen, sobald IO Cache aktiviert ist und der Speicherplatz für Spark reduziert ist. Der von IO Cache benötigte Speicherplatz beträgt standardmäßig die Hälfte des gesamten SSD-Speicherplatzes. Der Speicherplatz für IO Cache ist in Ambari konfigurierbar. Wenn du Fehler im Festplattenspeicher bekommst, reduziere die Menge des SSD-Speichers, der für IO-Cache verwendet wird, und starte den Dienst neu. Um den Speicherplatz für IO Cache zu ändern, führen Sie folgende Schritte aus:
In Apache Ambari wählen Sie links den HDFS-Dienst aus.
Wählen Sie die Registerkarten Configs und Advanced aus.
Scrollen Sie nach unten und erweitern Sie den Bereich Custom core-site.
Finde die Eigenschaft hadoop.cache.data.fullness.percentage.
Ändere den Wert in der Box.
Wähle oben rechts 'Speichern '.
Wähle Neustart>Alle betroffenen neu starten.
Wähle Alle neu starten bestätigen.
Wenn das nicht funktioniert, deaktiviere IO Cache.
Nächste Schritte
Um mehr über IO Cache zu erfahren, einschließlich Leistungsbenchmarks, siehe den folgenden Blogbeitrag: Apache Spark Jobs steigern bis zu 9-fache Geschwindigkeit mit HDInsight IO Cache