Hadoop MR2中的基本权限错误
最近构建的MR2基本示例失败,即在psuedo分布式MR2 HDFS群集中运行pi示例,错误如下: 13/07/06 21:20:47 ERROR security.UserGroupInformation:PriviledgedActionException as:root(auth:SIMPLE)原因:org.apache.hadoop.security.AccessControlException:Permission denied:user=root,access=EXECUTE,inode=“/tmp/hadoop-thread/staging”:mapred:mapred:drwxrwx---Hadoop MR2中的基本权限错误,hadoop,permissions,yarn,Hadoop,Permissions,Yarn,最近构建的MR2基本示例失败,即在psuedo分布式MR2 HDFS群集中运行pi示例,错误如下: 13/07/06 21:20:47 ERROR security.UserGroupInformation:PriviledgedActionException as:root(auth:SIMPLE)原因:org.apache.hadoop.security.AccessControlException:Permission denied:user=root,access=EXECUTE,ino
为什么会发生这种情况?解决方案只需更改/tmp/hadoop权限: sudo-u hdfs hadoop fs-chmod-R 777/tmp/hadoop纱线 让我们想象一下,如果这个目录完全是由hadoop的内部生命周期创建的,那么它将如何以不正确的权限结束
(欢迎评论)在您的
mapred站点.xml
上添加warn.app.mapreduce.am.staging dir
,如下所示:
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/user</value>
</property>
warn.app.mapreduce.am.staging-dir
/使用者
此配置假定用户帐户(在您的情况下为root
)在HDFS上有其主目录/user/root
,并且登台目录将被创建为/user/root/.staging
,其中用户帐户已具有正确的权限
有关更多信息,请查看以下链接上的“步骤4:配置临时目录”
从/user目录上的hdfs用户
chmod 777
,我可以使用我的ubuntu用户sudoer运行一个.jar文件。我还可以使用hdfs用户运行jar。首先,您需要正确创建临时文件夹。使用hadoop用户,运行以下命令:
$ hdfs dfs -mkdir /tmp
$ hdfs dfs -chmod -R 1777 /tmp
您可能希望删除/tmp目录的当前内容
对于配置单元用户,如果您对scratchdir有类似的问题,请编辑文件hive/conf/hive-site.xml
<property>
<name>hive.exec.local.scratchdir</name>
<value>${system:java.io.tmpdir}/${system:user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
<property>
<name>hive.scratch.dir.permission</name>
<value>777</value>
<description>The permission for the user specific scratch directories that get created.</description>
</property>
hive.exec.local.scratchdir
${system:java.io.tmpdir}/${system:user.name}
用于配置单元作业的本地暂存空间
hive.download.resources.dir
${system:java.io.tmpdir}/${hive.session.id}\u资源
用于在远程文件系统中添加资源的临时本地目录。
hive.scratch.dir.permission
777
已创建的用户特定临时目录的权限。