读取大量csv文件时mapreduce失败

Raghuveer

如果我通过mapreduce分别运行它们,则可以读取csv文件。但是,当我从具有n个文件的文件夹运行时,mapreduce作业在100%失败,并显示以下错误:

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)

请提示。

克里斯·格肯

几件事:

1)始终将逻辑包装在try-catch块中的mapper的map()方法(以及reducer的reduce()方法)中,以使这样的事情不会将整个工作淹没

2)在catch块中,您可以记录无效的输入键/值以及错误,或者出于开发目的,只需将信息写入控制台即可。如果要调试作业,则可以在catch块的第一行上设置断点。

您似乎有190个任务,这可能意味着您有很多小文件。我的猜测是后来的文件之一-您尚未手动运行的文件-引起了问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

写入CSV文件时读取

来自分类Dev

读取csv文件时出错

来自分类Dev

如何通过读取CSV文件来保留大量数据

来自分类Dev

vsto 读取文件在项目发送时失败

来自分类Dev

“同时”读取大量文件

来自分类Dev

从目录读取* .csv文件并显示每个文件的内容失败

来自分类Dev

读取csv文件熊猫时提供列名

来自分类Dev

读取CSV文件时如何跳过列?

来自分类Dev

读取CSV文件时发现尴尬的结果

来自分类Dev

在R中读取CSV文件时出错

来自分类Dev

读取csv文件时出现问题

来自分类Dev

使用python读取csv文件时出错

来自分类Dev

在R中读取CSV文件时出错

来自分类Dev

读取 CSV 文件时出现奇怪的字符

来自分类Dev

处理大量CSV文件

来自分类Dev

处理大量CSV文件

来自分类Dev

当复制大量文件由于路径长度而失败时,如何知道未传输哪些文件?

来自分类Dev

是什么导致PHPExcel在使用分块过滤器时读取文件时使用大量内存?

来自分类Dev

尝试从文件读取时设置失败位-为什么?

来自分类Dev

在Swift代码中调用C ++函数时读取文件失败

来自分类Dev

文件读取失败

来自分类Dev

WAVE文件读取失败

来自分类Dev

如何在 Cinema4D 中使用 Python 读取大量 csv 文件?

来自分类Dev

从csv读取行中存储的大量数据

来自分类Dev

从csv读取行中存储的大量数据

来自分类Dev

从Windows机器提交时,Mapreduce作业失败

来自分类Dev

读取hbase表时挂起Mapreduce作业

来自分类Dev

使用MapReduce读取目录中的文件

来自分类Dev

读取CSV文件时出现扫描EOF错误