Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader@5707bcf

项目场景:

Windows10、Hadoop2.7.7

问题描述:

2021-01-19 10:24:07,714 INFO [org.apache.hadoop.conf.Configuration.deprecation] - session.id is deprecated. Instead, use dfs.metrics.session-id
2021-01-19 10:24:07,715 INFO [org.apache.hadoop.metrics.jvm.JvmMetrics] - Initializing JVM Metrics with processName=JobTracker, sessionId=
2021-01-19 10:24:08,637 WARN [org.apache.hadoop.mapreduce.JobResourceUploader] - Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
2021-01-19 10:24:08,668 WARN [org.apache.hadoop.mapreduce.JobResourceUploader] - No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
2021-01-19 10:24:08,743 INFO [org.apache.hadoop.mapreduce.lib.input.FileInputFormat] - Total input paths to process : 4
2021-01-19 10:24:08,758 INFO [org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat] - DEBUG: Terminated node allocation with : CompletedNodes: 1, size left: 0
2021-01-19 10:24:08,783 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - number of splits:3
2021-01-19 10:24:08,849 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - Submitting tokens for job: job_local1526626776_0001
2021-01-19 10:24:09,001 INFO [org.apache.hadoop.mapreduce.Job] - The url to track the job: http://localhost:8080/
2021-01-19 10:24:09,002 INFO [org.apache.hadoop.mapreduce.Job] - Running job: job_local1526626776_0001
2021-01-19 10:24:09,004 INFO [org.apache.hadoop.mapred.LocalJobRunner] - OutputCommitter set in config null
2021-01-19 10:24:09,011 INFO [org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter] - File Output Committer Algorithm version is 1
2021-01-19 10:24:09,013 INFO [org.apache.hadoop.mapred.LocalJobRunner] - OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
2021-01-19 10:24:09,067 INFO [org.apache.hadoop.mapred.LocalJobRunner] - Waiting for map tasks
2021-01-19 10:24:09,068 INFO [org.apache.hadoop.mapred.LocalJobRunner] - Starting task: attempt_local1526626776_0001_m_000000_0
2021-01-19 10:24:09,088 INFO [org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter] - File Output Committer Algorithm version is 1
2021-01-19 10:24:09,095 INFO [org.apache.hadoop.yarn.util.ProcfsBasedProcessTree] - ProcfsBasedProcessTree currently is supported only on Linux.
2021-01-19 10:24:09,816 INFO [org.apache.hadoop.mapred.Task] -  Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@1fee23cf
2021-01-19 10:24:09,822 INFO [org.apache.hadoop.mapred.MapTask] - Processing split: Paths:/user/chinasoft/input/6.8mb.txt:0+3559424,/user/chinasoft/input/6.8mb.txt:3559424+3559424
2021-01-19 10:24:09,875 INFO [org.apache.hadoop.mapred.MapTask] - (EQUATOR) 0 kvi 26214396(104857584)
2021-01-19 10:24:09,875 INFO [org.apache.hadoop.mapred.MapTask] - mapreduce.task.io.sort.mb: 100
2021-01-19 10:24:09,875 INFO [org.apache.hadoop.mapred.MapTask] - soft limit at 83886080
2021-01-19 10:24:09,875 INFO [org.apache.hadoop.mapred.MapTask] - bufstart = 0; bufvoid = 104857600
2021-01-19 10:24:09,875 INFO [org.apache.hadoop.mapred.MapTask] - kvstart = 26214396; length = 6553600
2021-01-19 10:24:09,878 INFO [org.apache.hadoop.mapred.MapTask] - Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
2021-01-19 10:24:09,881 INFO [org.apache.hadoop.mapred.MapTask] - Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader@5707bcf4
java.lang.NullPointerException
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.close(MapTask.java:523)
	at org.apache.hadoop.mapred.MapTask.closeQuietly(MapTask.java:2004)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
2021-01-19 10:24:09,883 INFO [org.apache.hadoop.mapred.MapTask] - Starting flush of map output
2021-01-19 10:24:09,902 INFO [org.apache.hadoop.mapred.LocalJobRunner] - Starting task: attempt_local1526626776_0001_m_000001_0
2021-01-19 10:24:09,903 INFO [org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter] - File Output Committer Algorithm version is 1
2021-01-19 10:24:09,903 INFO [org.apache.hadoop.yarn.util.ProcfsBasedProcessTree] - ProcfsBasedProcessTree currently is supported only on Linux.
2021-01-19 10:24:10,004 INFO [org.apache.hadoop.mapreduce.Job] - Job job_local1526626776_0001 running in uber mode : false
2021-01-19 10:24:10,005 INFO [org.apache.hadoop.mapreduce.Job] -  map 0% reduce 0%
2021-01-19 10:24:10,418 INFO [org.apache.hadoop.mapred.Task] -  Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@432cc287
2021-01-19 10:24:10,421 INFO [org.apache.hadoop.mapred.MapTask] - Processing split: Paths:/user/chinasoft/input/5.1mb.txt:0+2666496,/user/chinasoft/input/5.1mb.txt:2666496+2666496
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - (EQUATOR) 0 kvi 26214396(104857584)
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - mapreduce.task.io.sort.mb: 100
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - soft limit at 83886080
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - bufstart = 0; bufvoid = 104857600
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - kvstart = 26214396; length = 6553600
2021-01-19 10:24:10,463 INFO [org.apache.hadoop.mapred.MapTask] - Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
2021-01-19 10:24:10,464 INFO [org.apache.hadoop.mapred.MapTask] - Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader@2c65ef2b
java.lang.NullPointerException
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.close(MapTask.java:523)
	at org.apache.hadoop.mapred.MapTask.closeQuietly(MapTask.java:2004)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
2021-01-19 10:24:10,464 INFO [org.apache.hadoop.mapred.MapTask] - Starting flush of map output
2021-01-19 10:24:10,478 INFO [org.apache.hadoop.mapred.LocalJobRunner] - Starting task: attempt_local1526626776_0001_m_000002_0
2021-01-19 10:24:10,479 INFO [org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter] - File Output Committer Algorithm version is 1
2021-01-19 10:24:10,479 INFO [org.apache.hadoop.yarn.util.ProcfsBasedProcessTree] - ProcfsBasedProcessTree currently is supported only on Linux.
2021-01-19 10:24:11,081 INFO [org.apache.hadoop.mapred.Task] -  Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@4605402b
2021-01-19 10:24:11,085 INFO [org.apache.hadoop.mapred.MapTask] - Processing split: Paths:/user/chinasoft/input/1.7mb.txt:0+1769472,/user/chinasoft/input/3.4mb.txt:0+3555328
2021-01-19 10:24:11,128 INFO [org.apache.hadoop.mapred.MapTask] - (EQUATOR) 0 kvi 26214396(104857584)
2021-01-19 10:24:11,128 INFO [org.apache.hadoop.mapred.MapTask] - mapreduce.task.io.sort.mb: 100
2021-01-19 10:24:11,128 INFO [org.apache.hadoop.mapred.MapTask] - soft limit at 83886080
2021-01-19 10:24:11,128 INFO [org.apache.hadoop.mapred.MapTask] - bufstart = 0; bufvoid = 104857600
2021-01-19 10:24:11,128 INFO [org.apache.hadoop.mapred.MapTask] - kvstart = 26214396; length = 6553600
2021-01-19 10:24:11,129 INFO [org.apache.hadoop.mapred.MapTask] - Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
2021-01-19 10:24:11,129 INFO [org.apache.hadoop.mapred.MapTask] - Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader@63988a96
java.lang.NullPointerException
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.close(MapTask.java:523)
	at org.apache.hadoop.mapred.MapTask.closeQuietly(MapTask.java:2004)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
2021-01-19 10:24:11,129 INFO [org.apache.hadoop.mapred.MapTask] - Starting flush of map output
2021-01-19 10:24:11,144 INFO [org.apache.hadoop.mapred.LocalJobRunner] - map task executor complete.
2021-01-19 10:24:11,154 WARN [org.apache.hadoop.mapred.LocalJobRunner] - job_local1526626776_0001
java.lang.Exception: java.lang.NullPointerException
	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.NullPointerException
	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:548)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:786)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
2021-01-19 10:24:12,008 INFO [org.apache.hadoop.mapreduce.Job] - Job job_local1526626776_0001 failed with state FAILED due to: NA
2021-01-19 10:24:12,016 INFO [org.apache.hadoop.mapreduce.Job] - Counters: 0

原因分析:

包导入错误。说明

如果您正在使用新的Hadoop API(Hadoop 0.20.2及更高版本),则必须从包org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat中导入KeyValueTextInputFormat.class类,如果您使用的是旧的Hadoop API,你必须从org.apache.hadoop.mapred.KeyValueTextInputFormat导入它

解决方案:

需要更改导入包

import org.apache.hadoop.mapred.lib.CombineTextInputFormat;

为这个包:

import org.apache.hadoop.mapreduce.lib.input.CombineTextInputFormat;

参考博客

  1. https://www.cnblogs.com/bclshuai/p/12329390.html
  2. java – 在Mapreduce中设置job.setInputFormatClass时出错: [http://www.voidcn.com/article/p-gmlfxuzm-bvp.html]
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个错误信息指的是在使用Reflections库时,无法从给定的URL中创建Vfs.Dir对象,所以程序会忽略这个异常并继续运行。 Reflections是一个用于在运行时反射Java代码的库。Vfs.Dir是Reflections库中用于表示虚拟文件系统目录的对象。如果无法从给定的URL中创建Vfs.Dir对象,可能是由于URL不正确或所指定的资源不存在,或者由于某种原因无法访问该资源。 要解决这个问题,可以尝试检查给定的URL是否正确,确保指定的资源存在并可以访问。如果这不能解决问题,可以尝试检查日志以了解更多信息,或者尝试在程序中捕获并处理这个异常。 ### 回答2: [org.reflections.Reflections] 抛出的异常表示无法根据给定的 URL 创建 Vfs.Dir。这可能是由于 URL 指向的资源无效或不存在导致的。在此情况下,Reflections 将忽略异常并继续执行,可能会影响到后续的操作和功能。 Reflections 是一个 Java 库,用于在运行时扫描和获取 Class、Method、Field 等的元数据。它依赖于 VFS(Virtual File System)来访问和解析不同类型的资源。VFS 提供了一种抽象的文件系统接口,可以统一处理来自不同来源的资源。 当 Reflections 尝试根据给定的 URL 创建 Vfs.Dir 时,它首先验证 URL 是否有效,并尝试解析其中包含的资源。如果 URL 无效或指向不存在的资源,就会抛出上述异常。为了避免中断程序流程,Reflections 选择忽略该异常,继续执行其他操作。这可能会导致在后续的扫描过程中缺失一些资源,或者无法正常解析某些类文件等。 如何解决这个问题需要根据具体情况而定。首先,我们应该检查给定的 URL 是否正确,并确保资源是存在并可以访问的。如果 URL 无误,但是仍然出现异常,可以尝试更新 Reflections 或 VFS 的版本,以确保使用最新的修复和改进。还可以查看 Reflections 和 VFS 的文档、问题跟踪和讨论,以了解是否有类似的报告和解决方案。 总之,[org.reflections.Reflections] 无法创建 Vfs.Dir from url 的异常表示 Reflections 无法根据给定的 URL 访问和解析资源。尽管它选择忽略该异常并继续执行,但可能会影响到后续的操作和功能。我们需要检查 URL 的有效性,更新相关库的版本,并参考文档和社区来解决这个问题。 ### 回答3: [org.reflections.Reflections]无法从URL创建Vfs.Dir。忽略异常并继续。 这个问题通常出现在使用Reflections库时,当尝试创建Vfs.Dir对象时,出现了异常。Reflections库是一个Java库,用于扫描和获取代码中的注解和类信息。 出现该异常的原因可以是URL参数无效或无法解析。可能的原因包括传递了无效的URL参数、URL不符合格式要求或无法从URL解析目录。 为了解决此问题,可以采取以下步骤: 1. 检查传递给Reflections库的URL参数是否正确。确保URL参数指向一个有效的目录。 2. 如果URL参数是一个本地文件系统路径,请确保路径存在且可访问。在某些情况下,可能会因为没有访问权限或路径不存在而无法创建Vfs.Dir对象。 3. 如果URL参数是一个网络地址,确保网络连接正常,并确保URL指向的资源在网络上是可访问的。 4. 检查URL的格式是否正确。URL应该采用标准格式,例如"http://example.com"或"file:/path/to/directory"。 5. 确保Reflections库的版本是最新的,可能存在旧版库中的bug已经修复。 6. 如果问题仍然存在,并且您不需要Reflections库的某些功能,可以考虑使用其他类扫描和反射库,例如Java的标准反射库或Google的Guava库。 总之,当看到[org.reflections.Reflections]无法创建Vfs.Dir from url的异常时,需要检查URL参数是否正确、目标资源是否存在和可访问,并确保Reflections库版本最新。如果问题仍然存在,可以考虑使用其他类扫描和反射库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值