0

我正在尝试运行一个名为 Phenoripper(图像分析软件)的程序,该程序在 Ubuntu(13.04)上的 Hadoop 多节点设置(版本 1.1.2)中利用 MCR。hadoop 设置与通用 python/java mapreduce 作业完美配合;但是,当我尝试在设置中使用 phenoripper 时,出现此错误:

boost::filesystem::create_directory:权限被拒绝

我已经向 Phenoripper 的开发人员询问了这个问题,他们向我保证他们的程序没有创建或写入临时目录,并且由于它可以完美地在单台计算机上运行,​​我相信 MCR 是造成这个错误的原因。如果我理解正确,它会尝试在没有权限的地方创建一个临时目录,可能是在一个从节点上。有谁知道这个目录可能位于哪里或如何找到它?如果我能找到这个目录,我的解决方案是使用适当的权限永久创建它。这听起来像是一个可行的解决方案吗?任何关于地球上正在发生什么/如何解决它的想法将不胜感激!

4

2 回答 2

0

我对 MCR 的经验很少,但这是我试图从 Hadoop tmp 目录的角度帮助引导您朝着正确方向前进的尝试。

可想而知,在Hadoop中遇到创建tmp目录时,运行Phenoripper时权限不同。如果您想了解临时目录在 Hadoop 中的位置,请查看您的 hadoop-site 或 core-site 并找到:

<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
</property>

这是在 hadoop 中找到的所有 tmp 目录的基础。然后看一下hdfs-site中的如下配置参数:

dfs.datanode.data.dir(new name) or dfs.data.dir (old name)

这包含您的作业写入的数据块。

用于创建这些权限的 user.name hadoop 与您在询问whoami时遇到的用户相同

于 2013-07-15T16:16:23.247 回答
0

问题已解决...截至本文为止,最新版本的 MCR 存在一个重大错误,其中某些进程会查找其中包含 .matlab 目录的 /homes/ 目录...某些程序员一定只是添加了一个额外的 s在那里等同于痛苦的日子。在 777 权限下创建该目录并将 .matlab 文件夹放入其中解决了问题。

于 2013-07-16T15:59:01.437 回答