0
mapreduce를 통해 개별적으로 실행하면 csv 파일을 읽을 수 있습니다. 내가 파일의 폴더를 갖는 n 개에서 실행할 때 작업이 다음 오류를 보여주는 100 % 실패 맵리 듀스 :많은 csv 파일을 읽는 동안 mapreduce가 실패합니다.
INFO mapreduce.Job: map 99% reduce 0%
INFO mapred.Task: Task:attempt_local1889843460_0001_m_000190_0 is done. And is in the process of committing
INFO mapred.LocalJobRunner: map
INFO mapred.Task: Task 'attempt_local1889843460_0001_m_000190_0' done.
INFO mapred.LocalJobRunner: Finishing task: attempt_local1889843460_0001_m_000190_0
INFO mapred.LocalJobRunner: map task executor complete.
WARN mapred.LocalJobRunner: job_local1889843460_0001
java.lang.Exception: java.lang.ArrayIndexOutOfBoundsException: 6
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 6
at com.calsoftlabs.mr.analytics.common.ClientTrafficRecordReader.nextKeyValue(ClientTrafficRecordReader.java:49)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:533)
at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
가 친절하게 제안한다.
나는 try-catch 지점에 전적으로 동의합니다. 내가 전에 해왔 던 문제는 "하드 코딩"입니다. 어떻게 선을 파싱합니까? (나는 선험적으로 3 개의 열이 있다는 것을 알고 있습니다.) 그런 다음 한 파일에 마지막 행에 외모가있는 새 행 문자가있는 경우 해당 행에 3 열 양식이없는 경우 문제가 발생합니다. try-catch는이를 수정합니다. 이것은 미묘한, 잡기 어렵고 문제를 일으킬 수있는 파일 간의 차이에 대한 많은 가능성 중 하나 일뿐입니다. – TravisJ
csv 파일은 우리가 MR 작업에 공급하는 우리에 의해 생성되기 때문에 그 문제가 없습니다. 마찬가지로 이전에 개별적으로 모든 파일을 잘하고 심지어 입력으로 2 파일을주고 실행했다. 하지만 내가 전체 디렉터리를 제공하면 MR 작업이 실패합니다. 나는 다른 문제를 생각하고 있지만 어떻게 해결할 수 있는지 제안 해주십시오. – Raghuveer