Hadoop java映射器作业在从节点上执行,目录问题

发布于 12-06 17:36 字数 491 浏览 1 评论 0原文

作为 Java 映射器的一部分,我有一个命令在本地从属节点上执行一些独立代码。当我运行代码时,它执行得很好,除非它尝试访问某些本地文件,在这种情况下,我会收到无法找到这些文件的错误。

深入挖掘一下,它似乎是从以下目录执行的:

/data/hadoop/mapred/local/taskTracker/{user}/jobcache/job_201109261253_0023/attempt_201109261253_0023_m_000001_0/work

但我打算从相关文件所在的本地目录执行:

/home/users/{user}/input/jobname

java/hadoop中有没有办法强制从本地目录执行,而不是hadoop中自动创建的jobcache目录?

也许有更好的方法来解决这个问题吗?

对此的任何帮助将不胜感激!

As part of my Java mapper I have a command executes some standalone code on a local slave node. When I run a code it executes fine, unless it is trying to access some local files in which case I get the error that it cannot locate those files.

Digging a little deeper it seems to be executing from the following directory:

/data/hadoop/mapred/local/taskTracker/{user}/jobcache/job_201109261253_0023/attempt_201109261253_0023_m_000001_0/work

But I am intending to execute from a local directory where the relevant files are located:

/home/users/{user}/input/jobname

Is there a way in java/hadoop to force the execution from the local directory, instead of the jobcache directory automatically created in hadoop?

Is there perhaps a better way to go about this?

Any help on this would be greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧故2024-12-13 17:36:27

我现在使用的解决方法是将所有相关文件复制到作业缓存工作目录。然后,如果需要,您可以将结果复制回用户目录。

不幸的是,这并不能完全回答问题,但希望能为其他人提供有用的解决方法。

干杯,

乔里斯

A workaround method I'm using right now that works consists of copying all the relevant files over to the jobcache working directory. Then you can copy the results back to user directory if necessary.

Unfortunately this doesn't fully answer the question, but hopefully provides a useful workaround for others.

Cheers,

Joris

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文