作业期间更改了hadoop分布式缓存对象

xmd2e60i  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(439)

我有许多顺序hadoop作业,其中需要一个distributedcache文件。
驱动程序类(控制器)接收来自上一个作业的输入,修改一个文件,将其放入distributedcache并启动一个新作业。
在第一个作业之后(即在第二个作业中),我得到以下错误:

java.io.IOException: 
The distributed cache object hdfs://xxxx/xx/x/modelfile2#modelfile2 
changed during the job from 11/8/12 11:55 PM to 11/8/12 11:55 PM

有人知道问题出在哪里吗?

c90pui9n

c90pui9n1#

根据trackerdistributedcachemanager.java方法downloadcacheobject中的源代码,当发生此异常时,不会忽略该异常,并且不会将文件从hdfs实际下载到本地文件系统。所以任务在分布式缓存中找不到它的文件。我怀疑您可能注册了同一个对象两次,或者,当多个作业从同一个控制器将具有相同邮件的文件放入分布式缓存时,hadoop中可能存在一些bug。

相关问题