在linux上设置多节点hadoop的MCR权限问题

时间:2013-07-15 09:27:32

标签: linux matlab hadoop permissions

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

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

我已经向Phenoripper的开发人员询问了这个问题,他们向我保证他们的程序不会创建或写入临时目录,因为它完全可以在一台计算机上运行,​​我相信MCR会对此错误负责。如果我理解正确,它会尝试在其中没有权限的某个地方创建一个临时目录,可能是在其中一个从属节点上。有谁知道这个目录可能位于何处或如何找到它?如果我能找到这个目录,我的解决方案是永久创建具有适当权限的目录。这听起来像一个可行的解决方案吗?关于到底发生了什么/如何修复它的任何想法都将非常感激!

2 个答案:

答案 0 :(得分:0)

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

可以想象,运行Phenoripper时的权限在Hadoop中遇到tmp目录的创建时会有所不同。如果您想了解Hadoop中临时目录的位置,请查看您的hadoop站点或核心站点并找到:

<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与您在询问时遇到的用户相同whoami

答案 1 :(得分:0)

问题已解决......本文最新版本的MCR有一个重大错误,其中某些进程在其中查找带有.matlab目录的/ homes /目录...有些程序员必须放在那里额外的s等于痛苦的日子。在777权限下创建该目录并将.matlab文件夹放入其中解决了问题。