我有许多顺序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
有人知道问题出在哪里吗?
1条答案
按热度按时间c90pui9n1#
根据trackerdistributedcachemanager.java方法downloadcacheobject中的源代码,当发生此异常时,不会忽略该异常,并且不会将文件从hdfs实际下载到本地文件系统。所以任务在分布式缓存中找不到它的文件。我怀疑您可能注册了同一个对象两次,或者,当多个作业从同一个控制器将具有相同邮件的文件放入分布式缓存时,hadoop中可能存在一些bug。