tutorial mundo maquina hola for example espaƱol dummies comandos aprender hadoop mapreduce azure-cosmosdb

mundo - Clase no encontrada en el trabajo de Hadoop



mapreduce java (2)

Tengo un trabajo de reducción de mapa que obtiene su entrada de DocumentDB. He agregado archivos jar bajo el directorio lib en mi código fuente y también uso el -libjars cuando ejecuto el trabajo. pero sigo recibiendo el error de clase no encontrada para una clase en el archivo jar. Aquí hay una parte de mi programa de controlador

public class MapReduceDriver extends Configured implements Tool { public static void main(String[] args) throws Exception { int res = ToolRunner.run(new Configuration(), new MapReduceDriver(), args); System.exit(res); } @Override public int run(String[] args) throws Exception { Configuration conf = this.getConf(); ....

Cuando uso el -libjars, una vez coloqué los archivos jar requeridos en el controlador local y una vez en el hdfs, pero ninguno funcionó. ¿Cómo puedo asegurarme de que funciona el -libjars?

ps Estoy usando clúster HDInsight de 2 nodos (ejecutándose en Microsoft Azure).

Aquí está el mensaje de error que recibo

Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.microsoft.azure.documentdb.hadoop.DocumentDBInputFormat not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1961) at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:174) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:726) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) Caused by: java.lang.ClassNotFoundException: Class com.microsoft.azure.documentdb.hadoop.DocumentDBInputFormat not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1867) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1959) ... 8 more


HDInsight está utilizando templton que no tiene soporte para libjars, por lo que no puede usar los documentos de templton

Además, supongo que está creando un clúster HDInsight personalizado con un script de powershell. Puede copiar todos los archivos jar con dependencias a HADOOP_HOME + ''/ share / hadoop / common / lib, esto sería la carpeta hadoop lib.

O puede usar directamente el script de powershell publicado al cambiar la ruta que contiene los archivos jar de dependencia (agregar los archivos jar a un bloque azul y simplemente reemplazar la ruta) script powershell