Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Note
- La caché de E/S estuvo soportada hasta Spark 2.3 y no será compatible con Spark 2.4 (HDInsight 4.0) ni en Spark 3.1.2 (HDInsight 5.0)
IO Cache es un servicio de caché de datos para Azure HDInsight que mejora el rendimiento de los trabajos de Apache Spark. IO Cache también funciona con cargas de trabajo Apache TEZ y Apache Hive , que pueden ejecutarse en clústeres Apache Spark . IO Cache utiliza un componente de caché de código abierto llamado RubiX. RubiX es una caché local de disco para su uso con motores de análisis de big data que acceden a datos desde sistemas de almacenamiento en la nube. RubiX es único entre los sistemas de almacenamiento en caché porque utiliza unidades de estado sólido (SSD) en lugar de reservar memoria del sistema para la caché. El servicio de caché de IO lanza y gestiona los servidores de metadatos RubiX en cada nodo trabajador del clúster. También configura todos los servicios del clúster para un uso transparente de la caché de RubiX.
La mayoría de los SSD proporcionan más de 1 GByte por segundo de ancho de banda. Este ancho de banda, complementado por la caché de archivos en memoria del sistema operativo, proporciona suficiente ancho de banda para cargar motores de procesamiento de big data computing, como Apache Spark. La memoria operativa queda disponible para que Apache Spark procese tareas muy dependientes de la memoria, como órdenes aleatorios. Tener uso exclusivo de la memoria operativa permite a Apache Spark lograr un uso óptimo de los recursos.
Note
Actualmente, IO Cache utiliza RubiX como componente de caché, aunque esto podría cambiar en futuras versiones del servicio. Por favor, utiliza interfaces de caché de IO y no aceptes dependencias directamente de la implementación de RubiX. Por ahora, la caché de IO solo es compatible con Azure BLOB Storage.
Beneficios de Azure HDInsight IO Cache
Utilizar IO Cache proporciona un aumento de rendimiento para trabajos que leen datos de Azure Blob Storage.
No tienes que hacer ningún cambio en tus trabajos de Spark para ver mejoras de rendimiento al usar la caché de IO. Cuando la caché de E/S está desactivada, este código de Spark lee datos remotamente desde Azure Blob Storage: spark.read.load('wasbs:///myfolder/data.parquet').count(). Cuando se activa la caché de IO, la misma línea de código provoca una lectura en caché a través de la caché de IO. En las lecturas siguientes, los datos se leen localmente desde el SSD. Los nodos worker en el clúster HDInsight están equipados con discos SSD dedicados conectados localmente. La caché de IO de HDInsight utiliza estos SSD locales para la caché, lo que proporciona el menor nivel de latencia y maximiza el ancho de banda.
Cómo empezar
La caché de Azure HDInsight IO está desactivada por defecto en la vista previa. IO Cache está disponible en los clústeres Azure HDInsight 3.6+ Spark, que ejecutan Apache Spark 2.3. Para activar la caché de IO en HDInsight 4.0, realiza los siguientes pasos:
En un explorador web, vaya a
https://CLUSTERNAME.azurehdinsight.net, dondeCLUSTERNAMEes el nombre del clúster.Selecciona el servicio de caché de IO a la izquierda.
Selecciona acciones (acciones de servicio en HDI 3.6) y activa.
Confirma el reinicio de todos los servicios afectados en el clúster.
Note
Aunque la barra de progreso muestra activado, la caché de IO no está activada hasta que reinicias los otros servicios afectados.
Troubleshooting
Puedes tener errores de espacio en disco al ejecutar trabajos de Spark después de activar la caché de IO. Estos errores se producen porque Spark también utiliza almacenamiento local en disco para almacenar datos durante las operaciones de mezcla. Spark puede quedarse sin espacio SSD una vez que la caché de E/S esté habilitada y el espacio para almacenamiento en Spark se reduzca. La cantidad de espacio que utiliza la caché de IO por defecto es la mitad del espacio total del SSD. El uso del espacio en disco para la caché de E/S se puede configurar en Ambari. Si tienes errores de espacio en disco, reduce la cantidad de espacio SSD usado para la caché de IO y reinicia el servicio. Para cambiar el espacio configurado para la memoria caché de E/S, realice los pasos siguientes:
En Apache Ambari, selecciona el servicio HDFS a la izquierda.
Selecciona las pestañas Configuración y Avanzado.
Desplácese hacia abajo y expanda el área Custom core-site (Personalizar sitio principal).
Localiza la propiedad hadoop.cache.data.fullness.percentage.
Cambie el valor en el cuadro.
Selecciona Guardar en la esquina superior derecha.
Selecciona Reiniciar>Reiniciar Todos los afectados.
Selecciona Confirmar Reiniciar todo.
Si eso no funciona, desactiva la caché de IO.