java - tradusir - Chispa en problemas de carga del tarro de hilo
tradusir en ingles (2)
Estoy intentando ejecutar un programa simple Map / Reduce java usando spark over hilado (Cloudera Hadoop 5.2 en CentOS). He intentado esto de 2 maneras diferentes. La primera forma es la siguiente:
YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/;
/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster --jars /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/lib/spark-assembly-1.4.0-hadoop2.4.0.jar simplemr.jar
Este método proporciona el siguiente error:
diagnósticos: Application application_1434177111261_0007 falló 2 veces debido a AM Container para appattempt_1434177111261_0007_000002 salido con exitCode: -1000 debido a: Resource hdfs: // kc1ltcld29: 9000 / user / myuser / .sparkStaging / application_1434177111261_0007 / spark-assembly-1.4.0-hadoop2. 4.0.jar cambiado en el sistema de archivos src (se esperaba 1434549639128, era 1434549642191
Entonces lo intenté sin los --jars:
YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/;
/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster simplemr.jar
diagnósticos: Application application_1434177111261_0008 falló 2 veces debido a AM Container para appattempt_1434177111261_0008_000002 salido con exitCode: -1000 debido a: El archivo no existe: hdfs: // kc1ltcld29: 9000 / user / myuser / .sparkStaging / application_1434177111261_0008 / spark-assembly-1.4. 0-hadoop2.4.0.jar. Fallando este intento. Error en la aplicación. Servidor ApplicationMaster: N / A Puerto ApplicationMaster RPC: -1 cola: root.myuser hora de inicio: 1434549879649 estado final: URL de seguimiento FAILED: http: // kc1ltcld29: 8088 / cluster / app / application_1434177111261_0008 usuario: myuser Excepción en el hilo "main" org.apache.spark.SparkException: la aplicación Application_1434177111261_0008 finalizó con el estado fallido en org.apache.spark.deploy.yarn.Client.run (Client.scala: 841) en org.apache.spark.deploy.yarn.Client $ .main (Client.scala: 867) en org.apache.spark.deploy.yarn.Client.main (Client.scala) en sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java : 57) en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) en java.lang.reflect.Method.invoke (Method.java:601) en org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 664) en org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 169) a t org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala: 192) en org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 111) en org.apache.spark.deploy.SparkSubmit .main (SparkSubmit.scala) 15/06/17 10:04:57 INFO util.Utils: Shutdown hook llamado 15/06/17 10:04:57 INFO util.Utils: Eliminar directorio / tmp / spark-2aca3f35-abf1 -4e21-a10e-4778a039d0f4
Traté de borrar todos los .jar de hdfs: //users//.sparkStaging y reenviar, pero eso no ayudó.
Si está recibiendo este error, significa que está cargando archivos jar de ensamblaje con la opción --jars o copiando manualmente a hdfs en cada nodo. He seguido este enfoque y funciona para mí.
En el modo yarn-cluster, Spark submit carga automáticamente el ensamblado jar a un caché distribuido que todos los contenedores ejecutores leen, por lo que no hay necesidad de copiar manualmente el ensamblado jar a todos los nodos (o pasarlo a través de --jars). Parece que hay dos versiones del mismo jar en su HDFS.
Intenta eliminar todos los archivos antiguos de tu directorio .sparkStaging e intenta nuevamente, debería funcionar.
El problema se resolvió copiando spark-assembly.jar en un directorio en el hdfs para cada nodo y luego pasándolo a spark-submit --conf spark.yarn.jar como parámetro. Los comandos se enumeran a continuación:
hdfs dfs -copyFromLocal /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/lib/spark-assembly-1.4.0-hadoop2.4.0.jar /user/spark/spark-assembly.jar
/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster --conf spark.yarn.jar=hdfs:///user/spark/spark-assembly.jar simplemr.jar