我非常感谢您的帮助。Hadoop:针对多个用户的伪分布式模式
我已经使用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目录的组所有权,用户不运行。但是,当NameNode重新启动时,我得到如上问题。
我该如何解决这个问题?同样的最佳做法是什么?
此外,有没有办法监测不同用户提交的作业?我假设Web UI应该允许我这样做。请确认。
我很感激您可以就此问题提供的任何帮助。谢谢。
问候
当您修改tmp文件夹权限 - 您是否修改HDFS或本地磁盘上的文件夹? –
克里斯 - 我修改了本地磁盘上的权限。 – user3031097