spark significado medicina aws hadoop amazon-s3 hdfs elastic-map-reduce

significado - hadoop hdfs



copiar archivos de amazon s3 a hdfs utilizando s3distcp falla (3)

Estoy recibiendo la misma excepción. Parece que el error es causado por una condición de carrera cuando CopyFilesReducer usa múltiples instancias de CopyFilesRunable para descargar los archivos de S3. El problema es que utiliza el mismo directorio temporal en varios subprocesos, y los subprocesos eliminan el directorio temporal cuando terminan. Por lo tanto, cuando un hilo se completa antes que otro, elimina el directorio temporal que otro hilo todavía está usando.

He informado el problema a AWS, pero mientras tanto puede evitar el error forzando al reductor a usar un solo hilo estableciendo la variable s3DistCp.copyfiles.mapper.numWorkers en 1 en la configuración de su trabajo.

Estoy tratando de copiar archivos de s3 a hdfs usando workflow en EMR y cuando ejecuto el comando a continuación, el flujo de trabajo se inicia exitosamente pero me da un error cuando intenta copiar el archivo a HDFS. ¿Debo configurar los permisos del archivo de entrada?

Mando:

./elastic-mapreduce --jobflow j-35D6JOYEDCELA --jar s3: //us-east-1.elasticmapreduce/libs/s3distcp/1.latest/s3distcp.jar --args ''--src, s3: // odsh / input /, - dest, hdfs: /// Usuarios

Salida

Task TASKID = "task_201301310606_0001_r_000000" TASK_TYPE = "REDUCE" TASK_STATUS = "FAILED" FINISH_TIME = "1359612576612" ERROR = "java.lang.RuntimeException: La tarea del reductor no pudo copiar 1 archivos: s3: //odsh/input/GL_01112_20121019.dat, etc. en com.amazon.external.elasticmapreduce.s3distcp.CopyFilesReducer.close (CopyFilesReducer.java:70) en org.apache.hadoop.mapred.ReduceTask.runOldReducer (ReduceTask.java:538) en org.apache.hadoop.mapred.ReduceTask .run (ReduceTask.java:429) en org.apache.hadoop.mapred.Child $ 4.run (Child.java:255) en java.security.AccessController.doPrivileged (método nativo) en javax.security.auth.Subject. doAs (Subject.java:396) en org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1132) en org.apache.hadoop.mapred.Child.main (Child.java:249)


Veo este mismo problema causado por la condición de raza. Pasar -Ds3DistCp.copyfiles.mapper.numWorkers=1 ayuda a evitar el problema.

Espero que Amazon solucione este error.


Ajustar el número de trabajadores no funcionó para mí; s3distcp siempre falló en una instancia pequeña / mediana. Aumentando el tamaño del montón del trabajo de la tarea (a través de -D mapred.child.java.opts=-Xmx1024m ) lo resolvió para mí.

Ejemplo de uso:

hadoop jar /home/hadoop/lib/emr-s3distcp-1.0.jar -D mapred.child.java.opts=-Xmx1024m --src s3://source/ --dest hdfs:///dest/ --targetSize 128 --groupBy ''.*/.([0-9]+-[0-9]+-[0-9]+)-[0-9]+/..*'' --outputCodec gzip