作为Java映射器的一部分,我有一个命令在本地从节点上执行一些独立代码。当我运行代码时,它执行得很好,除非它试图访问一些本地文件,在这种情况下,我得到错误,它无法定位这些文件。
再深入一点,它似乎是从以下目录执行的:
/数据/hadoop/mapred/地方/taskTracker/{user}/jobcache/job_201109261253_0023/attempt_201109261253_0023_m_000001_0/工作
但是我打算从相关文件所在的本地目录执行:
/home/用户/{user}/输入/jobname
在java/hadoop中是否有办法强制从本地目录执行,而不是在hadoop中自动创建的jobcache目录?
也许有更好的方法去做这件事吗?
任何帮助在这将是非常感激!
我现在使用的一种有效的解决方法是将所有相关文件复制到jobcache工作目录。然后,如果需要,可以将结果复制回用户目录。
不幸的是,这并不能完全回答这个问题,但希望能为其他人提供一个有用的解决方案。
欢呼,
尤里斯。