【发布时间】:2013-11-26 21:50:27
【问题描述】:
提前感谢您的帮助。
我已经使用 root 用户凭据在伪分布式模式下设置了 Hadoop。我想为多个用户(让我们说 hadoop1、hadoop2 等)提供访问权限,以便能够在此集群上提交和运行 MapReduce 作业。我们如何完成这项工作?
到目前为止我做了什么?
> - Setup Hadoop to run in Pseudo-distributed mode
> - Used "root" user credentials to set this up.
> - Added users hadoop1 and hadoop2 to a group called "hadoop".
> - Added root also to be part of the group "hadoop".
> - Created a folder called hdfstmp and set this as the path for hadoop.tmp.dir.
> - Started the cluster using bin/start-all.sh
> - Ran MapReduce jobs using hadoop1 and hadoop2 users.
我收到以下错误:
Exception in thread "main" java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1006)
at java.io.File.createTempFile(File.java:1989)
at org.apache.hadoop.util.RunJar.main(RunJar.java:119)
- 为了克服这个错误,我给了组“hadoop”rwx 文件夹hdfstmp 的权限。此文件夹的权限类似于 drwxrwxr-x。
- 使用 hadoop1 和 hadoop2 用户登录提交的 MapReduce 作业。作业运行良好,没有任何错误。
但是,如果我先执行 stop-all.sh,然后执行 start-all.sh,则 DataNode(有时甚至是 NameNode)不会启动。当我检查日志时,我看到如下错误:
2013-09-21 16:43:54,518 WARN org.apache.hadoop.hdfs.server.datanode.DataNode:dfs.data.dir 中的目录无效:预期 /data/hdfstmp/dfs/data 的权限不正确:rwxr-xr-x,而实际:rwxrwxr-x
现在,在不更改 hdfstmp 目录的组所有权的情况下,我由不同用户提交的 MR 作业无法运行。但是当 NameNode 重新启动时,我遇到了上述问题。
我该如何克服这个问题?相同的最佳做法是什么?
另外,有没有办法监控不同用户提交的作业?我假设 Web UI 应该允许我这样做。请确认。
感谢您在此问题上提供的任何帮助。谢谢。
问候
【问题讨论】:
-
修改tmp文件夹权限的时候-修改HDFS上的文件夹,还是本地磁盘?
-
Chris - 我修改了本地磁盘的权限。
标签: hadoop