Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
- IO Cache stöddes fram till Spark 2.3 och kommer inte att stödjas i Spark 2.4 (HDInsight 4.0) och Spark 3.1.2 (HDInsight 5.0)
IO Cache är en datacachetjänst för Azure HDInsight som förbättrar prestandan för Apache Spark-jobb. IO Cache fungerar också med Apache TEZ och Apache Hive-arbetsbelastningar , som kan köras på Apache Spark-kluster . IO Cache använder en öppen källkods cachekomponent som kallas RubiX. RubiX är en lokal diskcache för användning med big data-analysmotorer som får tillgång till data från molnlagringssystem. RubiX är unikt bland cachesystem eftersom det använder Solid-State enheter (SSD) istället för att reservera driftminne för caching. IO Cache-tjänsten startar och hanterar RubiX Metadata-servrar på varje arbetarnod i klustret. Den konfigurerar också alla tjänster i klustret för transparent användning av RubiX-cachen.
De flesta SSD:er tillhandahåller mer än 1 GByte per sekund bandbredd. Denna bandbredd, kompletterad av operativsystemets minnescache, ger tillräcklig bandbredd för att ladda big data-beräkningsmotorer, såsom Apache Spark. Driftsminnet lämnas tillgängligt för att Apache Spark ska kunna hantera mycket minnesberoende uppgifter, såsom omblandningar. Exklusiv användning av driftsminnet gör att Apache Spark kan uppnå optimal resursanvändning.
Anmärkning
IO Cache använder för närvarande RubiX som en cachekomponent, men detta kan ändras i framtida versioner av tjänsten. Använd gärna IO Cache-gränssnitt och ta inga beroenden direkt på RubiX-implementationen. IO Cache stöds för närvarande endast med Azure BLOB Storage.
Fördelar med Azure HDInsight IO Cache
Att använda IO Cache ger en prestandaökning för jobb som läser data från Azure Blob Storage.
Du behöver inte göra några ändringar i dina Spark-jobb för att se prestandaökningar när du använder IO Cache. När IO Cache är inaktiverad skulle denna Spark-kod läsa data på distans från Azure Blob Storage: spark.read.load('wasbs:///myfolder/data.parquet').count(). När IO Cache aktiveras orsakar samma kodrad en cachad genomläsning av IO Cache. Vid efterföljande läsningar läses datan lokalt från SSD. Arbetsnoder i HDInsight-klustret är utrustade med lokalt anslutna, dedikerade SSD-enheter. HDInsight IO Cache använder dessa lokala SSD:er för caching, vilket ger lägsta latensnivå och maximerar bandbredden.
Komma igång
Azure HDInsight IO Cache är inaktiverad som standard i förhandsvisning. IO Cache finns tillgängligt på Azure HDInsight 3.6+ Spark-kluster, som kör Apache Spark 2.3. För att aktivera IO Cache på HDInsight 4.0, gör följande steg:
Från en webbläsare går du till
https://CLUSTERNAME.azurehdinsight.net, därCLUSTERNAMEär namnet på klustret.Välj IO Cache-tjänsten till vänster.
Välj åtgärder (Tjänsteåtgärder i HDI 3.6) och aktivera.
Bekräfta omstart av alla berörda tjänster i klustret.
Anmärkning
Även om framstegsfältet visas aktiverat, är IO Cache faktiskt inte aktiverat förrän du startar om de andra berörda tjänsterna.
Felsökning
Du kan få fel på diskutrymmet när du kör Spark-jobb efter att ha aktiverat IO Cache. Dessa fel uppstår eftersom Spark också använder lokal disklagring för att lagra data under omkastningsoperationer. Spark kan få slut på SSD-utrymme när IO Cache aktiveras och utrymmet för Spark-lagring minskas. Mängden utrymme som IO Cache använder är som standard hälften av det totala SSD-utrymmet. Diskutrymmesanvändningen för IO Cache kan konfigureras i Ambari. Om du får diskutrymmesfel, minska mängden SSD-utrymme som används för IO Cache och starta om tjänsten. För att ändra utrymmesuppsättningen för IO Cache, gör följande steg:
I Apache Ambari, välj HDFS-tjänsten till vänster.
Välj flikarna Konfigurationer och Avancerat .
Bläddra ned och fäll ut området Anpassad core-site.
Hitta egenskapen hadoop.cache.data.fullness.percentage.
Ändra värdet i rutan.
Välj Spara uppe till höger.
Välj Starta om>Starta om alla berörda.
Välj Bekräfta Starta om allt.
Om det inte fungerar, inaktivera IO Cache.