Obtención de una excepción no encontrada en cascada.tap.hadoop.io.MultiInputSplit mientras se ejecuta el programa hadoop utilizando un marco en cascada
Aquí está mi código que se conecta a la máquina hadoop y realiza un conjunto de validación y escribe en otro directorio.
public class Main{
public static void main(String...strings){
System.setProperty("HADOOP_USER_NAME", "root");
String in1 = "hdfs://myserver/user/root/adnan/inputfile.txt";
String out = "hdfs://myserver/user/root/cascading/temp2";
Properties properties = new Properties();
AppProps.setApplicationJarClass(properties, Main.class);
HadoopFlowConnector flowConnector = new HadoopFlowConnector(properties);
Tap inTap = new Hfs(new TextDelimited(true, ","), in1);
Tap outTap = new Hfs(new TextDelimited(true, ","), out);
Pipe inPipe = new Pipe("in1");
Each removeErrors = new Each(inPipe, Fields.ALL, new BigFilter());
GroupBy group = new GroupBy(removeErrors, getGroupByFields(fieldCols));
Every mergeGroup = new Every(group, Fields.ALL, new MergeGroupAggregator(fieldCols), Fields.RESULTS);
FlowDef flowDef = FlowDef.flowDef()
.addSource(inPipe, inTap)
.addTailSink(mergeGroup, outTap);
flowConnector.connect(flowDef).complete();
}
Mi trabajo está siendo enviado a la máquina hadoop. Puedo comprobar esto en el rastreador de trabajo. pero el trabajo está fallando y obtengo una excepción a continuación.
cascading.tap.hadoop.io.MultiInputSplit no se encuentra en org.apache.hadoop.mapred.MapTask.getSplitDetails (MapTask.java:348) en org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask). org.apache.hadoop.mapred.MapTask.run (MapTask.java:333) en org.apache.hadoop.mapred.Child $ 4.run (Child.java:268) en java.security.AccessController.doPrivileged (Método Nativo) en javax.security.auth.Subject.doAs (Subject.java:415) en org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1408) en org.apache.hadoop.mapred.Child.main (Niño) .java: 262) Causado por: java.lang.ClassNotFoundException: La clase cascading.tap.hadoop.io.MultiInputSplit no se encuentra en org.apache.hadoop.conf.Configuration.getClassByName (Configuration.java:1493) en org.apache. hadoop.mapred.MapTask.getSplitDetails (MapTask.java:346) ... 7 más
java.lang.ClassNotFoundException: no se encontró la clase cascading.tap.hadoop.io.MultiInputSplit en org.apache.hadoop.conf.Configuration.getClassByName (Configuration.java:1493)
Tenga en cuenta que: 1. Estoy ejecutando esto desde mi máquina Windows y hadoop está configurado en una caja diferente. 2. Estoy usando la distribución cloudera para hadoop que es CDH 4.