Después de una chispa programa termina, hay 3 directorios temporales permanecen en el directorio temp.
Los nombres de los directorios son como este: spark-2e389487-40cc-4a82-a5c7-353c0feefbb7

Los directorios vacíos.

Y cuando la Chispa programa se ejecuta en Windows, un ágil archivo DLL que también permanece en el directorio temp.
El nombre de archivo es este: snappy-1.0.4.1-6e117df4-97b6-4d69-bf9d-71c4a627940c-snappyjava

Que se crean cada vez que la Chispa programa se ejecuta. Por lo que el número de archivos y directorios sigue creciendo.

Cómo puede dejar de ser eliminado?

Spark versión 1.3.1 con Hadoop 2.6.

ACTUALIZACIÓN

Yo he trazado la chispa de código fuente.

El módulo de métodos que crear los 3 ‘temp’ directorios son como sigue:

  • DiskBlockManager.createLocalDirs
  • HttpFileServer.inicializar
  • SparkEnv.sparkFilesDir

Que (eventualmente) llamada Utils.getOrCreateLocalRootDirs y, a continuación, Utils.createDirectory, que intencionalmente NO marca el directorio para la eliminación automática.

El comentario de createDirectory método dice: «El directorio está garantizado para ser
recién creada, y no está marcado para su eliminación automática.»

No sé por qué no están marcadas. Es esto realmente intencional?

InformationsquelleAutor zeodtr | 2015-05-07

6 Comentarios

  1. 22

    Tres SPARK_WORKER_OPTS existe para apoyar a los trabajadores de la carpeta de aplicación de limpieza, copiado aquí para más referencia: desde Chispa Doc

    • spark.worker.cleanup.enabled, el valor predeterminado es false, Habilitar la limpieza periódica de trabajador /directorios de la aplicación. Tenga en cuenta que esto sólo afecta de modo independiente, como HILO, funciona de manera diferente. Sólo los directorios de paro de las aplicaciones que se limpian.

    • spark.worker.cleanup.interval, el valor predeterminado es de 1800, es decir, 30 minutos, Controla el intervalo, en segundos, en el que el trabajador se limpia antiguo trabajo de aplicación de directorios en la máquina local.

    • spark.worker.cleanup.appDataTtl, por defecto es 7*24*3600 (7 días), El número de segundos para retener la aplicación de los directorios de trabajo de cada trabajador. Este es un Tiempo Para Vivir y dependerá de la cantidad de espacio disponible en disco que usted tiene. Los registros de aplicación y los frascos son descargados a cada solicitud de trabajo dir. Con el tiempo, el trabajo dirs puede llenar rápidamente el espacio en disco, especialmente si usted ejecutar trabajos muy frecuentemente.

    • Gracias, pero es solo para la Chispa de modo independiente. El ‘temp’ en el directorio es creado para el modo local y el HILO para el modo cliente.
  2. 16

    Supongo que usted está utilizando el modo «local» sólo para propósitos de prueba. He resuelto este problema mediante la creación de una costumbre de la carpeta temp antes de ejecutar una prueba y, a continuación, voy a borrar manualmente (en mi caso uso el modo local en JUnit para la carpeta temporal se elimina automáticamente).

    Puede cambiar la ruta a la carpeta temp de Chispa, spark.local.dir propiedad.

    SparkConf conf = new SparkConf().setMaster("local")
                                    .setAppName("test")
                                    .set("spark.local.dir", "/tmp/spark-temp");

    Después de completarse el examen me gustaría eliminar el /tmp/spark-temp carpeta manualmente.

    • Gracias, es una posible solución. Por CIERTO, he presentado una JIRA para este problema. Por favor, consulte issues.apache.org/jira/browse/SPARK-7439 .
    • Gracias has salvado el día
    • Hay una manera que puede eliminar automáticamente los archivos?
  3. 1

    No sé cómo hacer que la Chispa de limpieza de los directorios temporales, pero yo era capaz de prevenir la creación de la snappy-XXX archivos. Esto se puede hacer de dos maneras:

    1. Deshabilitar la compresión. Propiedades: spark.la emisión.comprimir, chispa.shuffle.comprimir, chispa.shuffle.derrame.comprimir. Ver http://spark.apache.org/docs/1.3.1/configuration.html#compression-and-serialization
    2. Uso LZF como un códec de compresión. Chispa utiliza bibliotecas nativas para Snappy y lz4. Y debido a la forma en JNI obras, la Chispa tiene que desempaquetar estas bibliotecas antes de usarlos. LZF parece ser implementado de forma nativa en Java.

    Estoy haciendo esto durante el desarrollo, pero para la producción es probablemente mejor usar la compresión y tiene un script para limpiar los directorios temporales.

  4. 0

    No creo que la limpieza es compatible para todos los escenarios. Yo sugeriría a escribir un simple programador de windows para limpiar todas las noches.

  5. 0

    para spark.local.dir, sólo se moverá chispa de archivos temporales, pero la ágil-xxx archivo todavía existe en /tmp dir.
    A pesar de no encontrar la manera de hacer que la chispa de borrar automáticamente, pero usted puede configurar JAVA opción:

    JVM_EXTRA_OPTS=" -Dorg.xerial.snappy.tempdir=~/some-other-tmp-dir"
    

    para moverlo a otro directorio, como la mayoría de los sistemas tiene pequeños /tmp tamaño.

Dejar respuesta

Please enter your comment!
Please enter your name here