Ich habe eine mp4-Datei auf hdfs gelegt und versucht, es direkt zu analysieren, ich habe einen Klassennamen wie VideoRecordReader
, in dem es den Casting-Fehler gibt. Unten ist die Beschreibung von Fehler.SplitFile gibt Casting Fehler
Sie haben Bibliothek /usr/local/lib/libopencv_core.so.3.0.0 geladen, die möglicherweise deaktiviert Stack-Guard haben. Die VM wird nun versuchen, den Stack Guard zu reparieren. versuch_201607261400_0011_m_000000_1: Es ist hoch empfohlen, dass Sie die Bibliothek mit 'execstack -c' reparieren, oder verknüpfen Sie es mit '-z noexecstack'. 16/07/26 17.32.27 INFO mapred.JobClient: Task-ID: attempt_201607261400_0011_m_000000_2, Status: FAILED java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit nicht zu gegossen werden kann org.apache.hadoop.mapred.FileSplit bei com.finalyearproject.VideoRecordReader.initialize (VideoRecordReader.java:65) bei org.apache.hadoop.mapred.MapTask $ NewTrackingRecordReader.initialize (MapTask.java:521) bei org.apache.hadoop.mapred.MapTask.runNewMapper (MapTask.java:763) bei org.apache.hadoop.mapred.MapTask.run (MapTask.java:364) um org.apache.hadoop.mapred.Child $ 4 .run (Child.java:255) um java.security.AccessController.doPrivileged (Native Metho d) unter javax.security.auth.Subject.doAs (Betreff.java:422) um org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1190) bei org.apache.hadoop.mapred. Child.main (Child.java:249)
Hier ist der Code von SplitFile.
public void initialize(InputSplit genericSplit, TaskAttemptContext context)
throws IOException, InterruptedException {
FileSplit split = (FileSplit) genericSplit;
Configuration job = context.getConfiguration();
start = 0;
end = 1;
final Path file = split.getPath();
FileSystem fs = file.getFileSystem(job);
fileIn = fs.open(split.getPath());
filename = split.getPath().getName();
byte [] b = new byte[fileIn.available()];
fileIn.readFully(b);
video = new VideoObject(b);
}
freundlicherweise helfen Sie mir danken Ihnen mit freundlichen Grüßen.
Vielen Dank, Sir, es funktioniert :) –