내 hadoop 버전이 1.0.3이고 multipleinputs를 사용할 때이 오류가 발생합니다.hadoop MultipleInputs가 ClassCastException과 함께 실패합니다.
java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.TaggedInputSplit cannot be cast to org.apache.hadoop.mapreduce.lib.input.FileSplit
at org.myorg.textimage$ImageMapper.setup(textimage.java:80)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
테스트 한 단일 입력 경로, 문제 없음. 내가
MultipleInputs.addInputPath(job, TextInputpath, TextInputFormat.class,
TextMapper.class);
MultipleInputs.addInputPath(job, ImageInputpath,
WholeFileInputFormat.class, ImageMapper.class);
를 사용하는 경우에만 검색 좀하고 0.21이이 버그가 열악하다고 말했습니다 링크
https://issues.apache.org/jira/browse/MAPREDUCE-1178를 발견했다. 하지만 1.0.3을 사용하고 있는데이 버그가 다시 발생합니까? 누구나 같은 문제가 있거나 다른 사람들이 해결 방법을 말해 줄 수 있습니까? 오류가 발생한 경우 여기
감사
이미지 매퍼의 설정 코드, 4 번째 라인은 다음과 같습니다protected void setup(Context context) throws IOException,
InterruptedException {
InputSplit split = context.getInputSplit();
Path path = ((FileSplit) split).getPath();
try {
pa = new Text(path.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
'ImageMapper'클래스의 코드를 게시 할 수 있습니까? 설정 방법에서 입력 분할을 FileInputSplit으로 캐스팅하려는 것처럼 보입니다. –
비슷한 문제점이 있습니다. 해결책이 있습니까? – sunitha